繁体   English   中英

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

[英]Customize app icon as build phase in Xcode 9/iOS 11

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

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

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

有没有办法再做一次?

我在这里偷偷摸摸。 问题是图标(以及资产目录中的其他所有内容)被打包成.car文件,然后使用它代替单个文件。 我不知道为什么实际的图标文件仍然被复制到构建文件夹中(也许它们用于表示模糊的地方,比如xcode中的构建列表或类似的东西)。 如果要更改构建脚本中的图标,则可以使用actool重新打包.car文件。 或者您需要在编译前更改图像。 或者您可以在xcode中拆分编译脚本并找到它打包.car文件的位置,然后在那里更改一些预先欺骗。 无论如何,更改中间构建文件夹中的图标将变得非常困难。

这是我最终选择的解决方案。

  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

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

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

更多信息:

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

编辑:

我做了一些挖掘,似乎有一个解决方案。 您可以在此主题中阅读更多内容: 应用程序图标不包含在Xcode 9的构建中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM