我正在使用新的资产目录AppIcon为iOS 5(理论上)、6和7设置正确的图标。不幸的是,当我在iPad 1(iOS 5.1.1)上安装应用程序时,显示的图标不是正确的(它是从另一个图标升级而来的,当然是57x57的)。
我看到在创建资产目录之后,在Info.plist
文件中添加了2个空条目:
Icon files (iOS 5)
CFBundleIcons~ipad
我读过很多“解决方案”,但没有一个对我有效:
其中一个解决方案是在plist中添加这些条目(并在项目中添加相应的图标):
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Icon.png</string>
<string>Icon@2x.png</string>
<string>Icon-72.png</string>
<string>Icon-72@2x.png</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
<key>CFBundleIcons~ipad</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Icon-Small</string>
<string>Icon-Small-50</string>
<string>Icon-72@2x.png</string>
<string>Icon-72.png</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
但根本不管用。
我使用的是Xcode 5.0(5A1413)。
任何帮助都将不胜感激。
7条答案
按热度按时间zbdgwd5y1#
我终于找到了一个可行的解决方案。我不再使用资产目录。我把这些行放在我的info.plist文件中:
它现在就像一个魅力:)
z31licg02#
我已经找到了更好的解决方案工作在iOS 5与资产目录.
在Info.plist中设置(其他图标部分如CFBundleIcons会被Xcode生成并覆盖,因此将其留空):
并在您的资源(外部资源)中再添加两个图标:
这样,您的包中只有两个重复的图标。
问题的根源在于资产目录会生成带有~iPad后缀的图标,iOS 5无法理解,所以我们需要手动添加这些不带~iPad后缀的文件,iOS 6不存在这个问题,可以找到合适的带有和不带~iPad后缀的图标。
使用在资源目录中设置的图标名称(AppIcon或Icon或其他任何名称)。
t40tm48m3#
XCode 6.0.1更新
XCode 6图标资产目录现在似乎可以在iOS5 - iOS8.0.2上正常工作。我已经在运行iOS 5.1.1的iPad 1上确认了这一点。检查编译后的应用程序,我发现XCode正确生成了以下Info.plist图标条目,并将图标文件复制到应用程序捆绑包根目录,并使用相应的文件名(这是在使用名为AppIcon的资产目录时生成的-默认值):
这包含所有iPad和iPhone设备到iPhone 6+的图标。
vltsax254#
试试这个:
将此添加到您的列表:
然后将以下图标文件添加到项目的根级别(与xcodeproj文件相同的文件夹):
您可能需要也可能不需要完成所有这些步骤,但它对我很有效。我的项目使用了XCode 5的资产目录,但我仍然必须这样做才能在运行iOS 5.1.1的iPad1上获得合适的图标(这真的很遗憾!)
vfwfrxfs5#
您还可以在界面中禁用资产目录:
1.在边栏中选择您的项目(列表中最上面的元素)
1.转到应用程序图标,单击源下拉字段,然后选择“不使用资产目录”
1.将您的图像添加到项目中(将其拖放到侧边栏中,您可以为它们创建一个组)
1.现在你可以在应用图标下选择你的图片,点击右边的灰色小文件夹图标。
我的猜测是,iOS 5只是不支持资产目录,所以你必须让Xcode 5使用旧的方式。
bf1o4zei6#
在我的情况下,唯一的解决方案是在资产中创建一个新的应用程序图标条目,并确保iPad图标设置在那里。
我在Xcode 5中处理一个旧项目。我让Xcode在旧项目文件上做一些转换,包括转换为使用资产。该项目仅限于iPhone,因此资产中转换的应用程序图标集不包含iPad条目-甚至插槽也不包含。当我创建一个新的应用程序图标时,它还包括iPad的插槽(该项目仍然是“仅限iPhone”)。填充所有条目导致我的图标显示在iPad 1(iOS 5. 1. 1)上。
请注意,我不必更改Info. plist,也不必为图标文件指定特定的名称。
bmvo0sr57#