在Xcode 9/iOS 11中将应用程序图标自定义为构建阶段

7
我的应用程序设置了根据正在构建的配置向应用程序图标添加横幅。按照以下步骤完成此操作:https://www.raywenderlich.com/105641/change-app-icon-build-time
从Xcode 9/iOS 11开始,这似乎不再起作用了。虽然图像仍然被正确地修改并存在于应用程序包中,但它们没有被用作设备上的应用程序图标。是否有任何方法可以再次实现这一点?

我已经在这里回答了这个问题。 - Valentin Shamardin
2个回答

3

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

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

在目标构建设置中,还需要将以下内容添加到“包含的源文件名称”(Included Source File Names),根据需要为每个配置进行自定义设置。
$(SRCROOT)/$(PRODUCT_NAME)/AppIcon-Debug.xcassets

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

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接