我最近迁移了我的应用程序以支持 iOS7,并在此过程中更新了我的应用程序图标以使用资产目录;这一切都在应用程序中运行良好。但是,在 Organizer 和 TestFlight 中,我的应用程序图标不见了。
TestFlight 中也发生了同样的事情——这意味着我的包中缺少一些东西。任何帮助将不胜感激。
因此,您似乎仍然需要Icon files
在应用程序 plist 中拥有指向应用程序资源图标的条目;即使当我转换到目录时 Xcode 删除了它;这是我手动创建的条目,同时还保留了资产目录:
请注意,我已经使用不同的图标对此进行了测试,此设置不会影响应用程序在运行时实际使用的图标;此条目似乎仅由 Organizer 和 TestFlight 使用,从而解决了我的问题。
是的,在使用Asset Catalog时,您可能需要执行以下操作以链接应用程序的图标,并为在Organizer、Test flight和可能未知的 AppStore 位置中看到的Ad-Hoc 分发/生产工作。
.xassets
创建 Asset Catalog 后,记下Xcode 中列出的 Launch Images 和 App Icon 名称。
默认情况下,这应该是
AppIcon
LaunchImage
[要查看此内容,请单击 Xcode 中的 .xassets 文件夹/图标。](可以更改,因此请记下此变量以备后用)
现在每个构建都在您的 .app 中创建以下数据结构:
对于应用程序图标:
苹果手机
AppIcon57x57.png
(iPhone 非视网膜)[注意图标名称前缀]AppIcon57x57@2x.png
(iPhone视网膜)并且其他每个图标分辨率的格式相同。
iPad
AppIcon72x72~ipad.png
(iPad非视网膜)AppIcon72x72@2x~ipad.png
(iPad视网膜)(对于 iPad,后缀略有不同)
主要问题
现在我注意到,在我的 Xcode 5.0.1 中,它在完成资产目录的创建后Info.plist
自动尝试并未能为“”创建密钥。Icon files (iOS 5)
如果它确实成功创建了引用/这可能已被 Apple 修补或刚刚工作,那么您所要做的就是查看图像名称以验证上面列出的格式。
最终解决方案:
将以下键添加到您的主要.plist
.plist
我建议您使用诸如 TextWrangler 之类的外部文本编辑器打开您的 main ,而不是在 Xcode 中复制并粘贴以下密钥。
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon57x57.png</string>
<string>AppIcon57x57@2x.png</string>
<string>AppIcon72x72~ipad.png</string>
<string>AppIcon72x72@2x~ipad.png</string>
</array>
</dict>
</dict>
请注意,我只包含了我的示例分辨率,您需要将它们全部添加。
如果您想在没有外部编辑器的情况下在 Xcode 中添加此密钥,请使用以下命令:
Icon files (iOS 5)
- 字典Primary Icon
- 字典Icon files
- 大批Item 0
- 字符串 =AppIcon57x57.png
并为每个其他项目/应用程序图标。现在,当您最终归档项目时,最终的 .xcarchive 有效负载 .plist 现在将包含上述图标位置以进行构建和使用。
<key>IconPaths</key>
<array>
<string>Applications/Example.app/AppIcon57x57.png</string>
<string>Applications/Example.app/AppIcon57x57@2x.png</string>
<string>Applications/Example.app/AppIcon72x72~ipad.png</string>
<string>Applications/Example.app/AppIcon72x72@2x~ipad.png</string>
</array>
迁移到Asset Catalog的另一个可能的问题。
在项目设置中定义图标有两种方式:CFBundleIconFiles
iOS3 起和CFBundleIcons
iOS5 起。较旧的,尽管较旧,与向后兼容性的常识相反,仍然优先。我CFBundleIcons
在直接迁移到资产目录之前正在使用。在我迁移之后,我删除了指向的原始文件,CFBundleIcons
因为,你知道,现在我有了闪亮的新资产目录,对吧?XCode 做了三件事:
CFBundleIcons
它从常规项目设置中隐藏了前者的可视化编辑。当您已经选择了闪亮的新资产目录时,为什么还需要它,对吧?CFBundleIcons
Info.plist 的原始键,但是,通过选择资产目录,您可以清楚而响亮地说您不会低于 iOS5结果是隐藏的、视觉上不可编辑的、可能已过时/错误的键,Info.plist
其中优先于为您创建的资产目录。
去手动打开你的Info.plist
删除CFBundleIcons
,重建,重新上传,瞧,图标又回来了。