【问题标题】:Customize app icon as build phase in Xcode 9/iOS 11在 Xcode 9/iOS 11 中将应用程序图标自定义为构建阶段
【发布时间】:2018-02-22 13:28:23
【问题描述】:

我的应用设置为根据正在构建的配置向应用图标添加横幅。它是按照这些步骤完成的。

https://www.raywenderlich.com/105641/change-app-icon-build-time

从 Xcode 9/iOS 11 开始,这似乎不再适用。图像仍在正确修改中,它们存在于应用程序包中,但它们并未用作设备上的应用程序图标。

有没有办法再做一次?

【问题讨论】:

  • 我已经回答了这个问题here

标签: ios xcode ios11 xcode9


【解决方案1】:

这是我最终采用的解决方案。

  1. Assets.xcassets 中删除应用程序图标
  2. 为每个需要自定义图标的配置创建新的xcassets。我将它们命名为AppIcon-{CONFIGUATION}.xcassets
  3. 为发布版本创建一个默认的AppIcon.xcassets 文件。
  4. 在目标构建设置中,将以下内容添加到Excluded Source File Names
$(SRCROOT)/$(PRODUCT_NAME)/AppIcon*.xcassets
  1. 同样在目标构建设置中,将以下内容添加到Included Source File Names,根据需要为每个配置进行自定义。
$(SRCROOT)/$(PRODUCT_NAME)/AppIcon-Debug.xcassets

这将导致构建的应用程序仅包含正在构建的配置的应用程序图标资产。这也可以扩展到其他资产。

【讨论】:

    【解决方案2】:

    我在这方面进行了研究。问题是图标(以及资产目录中的所有其他内容)被打包到 .car 文件中,然后使用该文件而不是单个文件。我不知道为什么实际的图标文件仍被复制到构建文件夹中(也许它们用于表示模糊的地方,如 xcode 中的构建列表或类似的东西)。如果要更改构建脚本中的图标,则可以使用 actool 重新打包 .car 文件。或者您需要更改图像预编译。或者,您可能会在 xcode 中拆开编译脚本并找到它打包 .car 文件的位置,然后在此处更改一些预先技巧。无论如何,更改中间构建文件夹中的图标将非常困难。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,但是在 iOS 10.3 中,他们添加了对在运行时直接从代码修改应用程序图标的支持。如果您需要向图标添加文本,这可能会有点棘手,但应该不是不可能的。

      更多信息:

      https://www.hackingwithswift.com/example-code/uikit/how-to-change-your-app-icon-dynamically-with-setalternateiconname

      编辑:

      我做了更多的挖掘,似乎有一个解决方案。您可以在此线程中阅读更多内容:App Icons not included in build from Xcode 9

      【讨论】:

      • 上面发布的解决方案是针对不同的问题。即根本没有出现图标。最初的问题表明图标出现,它们不是动态生成的。似乎该图标是从与 iOS 11 中捆绑包的根目录不同的位置引用的。知道该位置可能允许您将动态图标保存到正确的位置。
      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 2015-12-09
      • 2015-03-18
      • 1970-01-01
      • 2022-10-04
      • 2018-02-27
      相关资源
      最近更新 更多