为什么Cocoapods吃应用程序图标

大型应用程序需要团队合作,因此将其分为不同的组件。 在这种情况下,每个团队都将其中一个作为单个回购协议,并使用Cocoapods将它们链接并绑定在一起。

一切正常,直到我们点击主页按钮并发现我们的应用程序图标丢失。

让我们退后一步,看看我们如何处理每个组件的图像资产。 通常,我们将图像文件放在.xcassets文件夹中,以避免与其他模块中的图像重复或名称冲突。 .xcassets那些图像将添加到捆绑中,如下所示:

这样,可以正确加载每个图像,并且我们的UI看起来不错。 那为什么我们会错过App图标呢?

原因是在“ 复制捆绑资源”构建步骤中,Xcode对.xcassets使用--app-icon参数,这意味着我们在此步骤中具有应用程序图标。 下一步“ [CP] Copy Pods Resources ”时,缺少此参数,因此将删除应用程序图标。 此配置将覆盖最终的Assets.car并导致应用图标丢失。 解决该问题的方法是在Pods-your_project_name-resources.sh中添加--app-icon参数,以确保它可以在“ [CP]复制Pods资源 ”步骤中工作。 积分属于Tima Khomutnikov。

另一种解决方案是将所有图像文件而不是.xcassets目录放入捆绑包。 它肯定会工作,但不是上一个的最佳选择。

有关更多详细信息,您可以在此处参考Cocoapods问题。