我最近迁移了我的应用程序以支持iOS7,并在此过程中更新了我的应用程序图标以使用资产目录;这在应用程序中工作得很好。但是,在Organizer和TestFlight中,我的app图标丢失了。
同样在TestFlight中也发生了 - 这意味着我的包中缺少某些东西。我们将非常感激地提供任何帮助。
答案 0 :(得分:13)
因此,您似乎仍然需要在app plist中指向Icon files
条目,该条目指向应用程序中的资源图标;即使Xcode在转换到目录时删除了它;这是我手动创建的条目,同时保留资产目录:
请注意,我已使用不同的图标对此进行了测试,此设置不会影响App在运行时实际使用的图标;此条目似乎仅由Organizer和TestFlight使用,从而解决了我的问题。
答案 1 :(得分:6)
是的,在使用资产目录时,您可能需要执行以下操作才能将应用的图标链接起来并为 Ad-Hoc发行版 / 生产<工作/ strong>在组织者,试飞以及可能未知的AppStore位置中看到。
创建资产目录后,请记下Xcode中.xassets
中列出的启动图像和应用程序图标名称。
默认情况下,这应该是
AppIcon
LaunchImage
[点击Xcode中的.xassets文件夹/图标。] (这可以改变,所以稍后请注意这个变量)
现在创建的内容是.app:
中的以下数据结构对于应用图标:
iPhone
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
我建议您使用外部文本编辑器(如TextWrangler)而不是Xcode打开主.plist
,以复制并粘贴以下密钥。
<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>
答案 2 :(得分:2)
迁移到资产目录的另一个可能的打嗝。
有两种方法可以在项目设置中定义图标:iOS3以来的CFBundleIconFiles
和iOS5以来的CFBundleIcons
。尽管年龄较大,但年龄较大,与反向兼容性的常识相反, still takes precedence 。我在使用CFBundleIcons
之前直接迁移到资产目录。在我迁移之后,我删除了CFBundleIcons
指向的原始文件,因为,你知道,现在我有了闪亮的新资产目录,对吧? XCode做了三件事:
CFBundleIcons
的可视化编辑。当你选择使用闪亮的新资产目录时,为什么还需要它,对吧?CFBundleIcons
键,但是,通过选择资产目录,你说清楚并且声音很大,你不会在iOS5下面 Info.plist
中的结果是隐藏的,视觉上不可编辑的,可能是过时/错误的密钥,该密钥优先于资产目录为您创建的内容。
手动打开Info.plist
并删除CFBundleIcons
,重建,重新上传,然后再回复图标。