在pipe理器中缺lessAppIcon
我最近迁移了我的应用程序以支持iOS7,并在此过程中更新了我的应用程序图标以使用资产目录; 这是所有在应用程序的伟大工作。 但是,在组织者和TestFlight中,我的应用程序图标缺失。
在TestFlight中也是如此,这意味着我的包中缺less一些东西。 任何帮助将受到感谢。
所以看起来你仍然需要在应用程序plist中有一个Icon files
,它指向一个图标,该图标是应用程序中的一个资源; 尽pipe当我转换到目录时,Xcode删除了这个; 这里是我手动创build的条目,同时也保留了资产目录:
请注意,我已经testing了不同的图标,这个设置不会影响应用程序在运行时实际使用的图标; 这个条目似乎只能用于组织者和TestFlight,从而解决我的问题。
在使用资产目录时 ,您可能需要执行以下操作来获取应用程序图标链接,并且可以在组织者 , testing飞行和可能未知的AppStore位置中看到Ad-Hoc分发 / 制作 。
创build资产目录后,请记下Xcode中.xassets
中列出的启动映像和应用程序图标名称的名称。
默认情况下,这应该是
-
AppIcon
-
LaunchImage
[要在Xcode中查看您的.xassets文件夹/图标,请点击这个](这可以改变,所以稍后请注意这个variables)
现在创build的每个版本是.app中的以下数据结构:
对于应用图标:
苹果手机
-
AppIcon57x57.png
(iPhone非视网膜)[ 注意图标名称前缀 ] -
AppIcon57x57@2x.png
(iPhone视网膜)
每个其他图标分辨率的格式都相同。
iPad的
-
AppIcon72x72~ipad.png
(iPad无视网膜) -
AppIcon72x72@2x~ipad.png
(iPad视网膜)
(对于iPad是稍微不同的后缀)
主要问题
现在我注意到在完成创build资产目录之后,在Xcode 5.0.1的Info.plist
中,它自动尝试并且未能创build“ Icon files (iOS 5)
”的密钥。
如果它确实创build了一个参考/这可能已经由苹果打补丁或刚刚工作,那么你所要做的就是检查图像名称来validation上面列出的格式。
最终解决scheme
将以下密钥添加到您的主.plist
我build议你用外部文本编辑器(如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>
请注意我只包括我的示例解决scheme,您将需要将它们全部添加。
如果你想在没有外部编辑器的情况下在Xcode中添加此密钥,请使用以下命令:
-
Icon files (iOS 5)
– 词典 -
Primary Icon
– 词典 -
Icon files
– arrays -
Item 0
– String =AppIcon57x57.png
并为每个其他项目/应用程序图标。
现在,当您最终归档您的项目时,最终的.xcarchive有效载荷.plist将包含上述要构build和使用的图标位置。
请不要将以下内容添加到任何.plist中:只是Xcode将为您的最终有效内容生成的示例
<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>
另一个可能的问题是迁移到资产目录 。
有两种方法可以在项目设置中定义图标:自iOS3以来的CFBundleIconFiles
和自iOS5以来的CFBundleIcons
。 年龄越大,尽pipe年龄较大,但与落后相容性的常识背道而驰, 依然占优势 。 我在使用CFBundleIcons
之前直接迁移到资产目录。 而我迁移后,我删除了由CFBundleIcons
指向的原始文件,因为,你知道,现在我有shiny的新的资产目录,对不对? XCode做了三件事情:
- 它隐藏了从常规项目设置的前
CFBundleIcons
的可视化编辑。 为什么你需要它,当你已经select了shiny的新资产目录,对不对? - 它不会删除Info.plist的原始
CFBundleIcons
键,但是通过select资产目录,您清楚而大声地说你不会低于iOS5 - 它也不validation所述密钥。 因为可以显示它们的项目设置UI不再可见,所以在任何地方都不会有小的红色交叉标记
结果是Info.plist
隐藏的,视觉上不可编辑的,可能过时/错误的键, 它优先于资产目录为您创build的 。
手动打开你的Info.plist
并删除CFBundleIcons
,重build,重新上传和瞧,图标回来了。