我在资产目录和我的应用程序中添加了所有必需的图标,但它没有在模拟器上显示图标
答案 0 :(得分:11)
如果您正在使用CocoaPods,请立即停止!
基本上,Xcode 9 / iOS 11添加资产文件的方式存在一些差异,而CocoaPods的一些奇怪干扰导致图标文件未被包含。
将此片段复制并传递给您的podfile(我知道......这很难看):
post_install do |installer|
copy_pods_resources_path = "Pods/Target Support Files/Pods-IconTest/Pods-IconTest-resources.sh"
string_to_replace = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"'
assets_compile_with_app_icon_arguments = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${BUILD_DIR}/assetcatalog_generated_info.plist"'
text = File.read(copy_pods_resources_path)
new_contents = text.gsub(string_to_replace, assets_compile_with_app_icon_arguments)
File.open(copy_pods_resources_path, "w") {|file| file.puts new_contents }
end
请务必将第二行路径名中的“IconTest”值更改为项目名称。 运行'pod update',然后回复你的应用程序图标。
此修复程序来自Cocoapods团队。请看这里的主题: https://github.com/CocoaPods/CocoaPods/issues/7003
答案 1 :(得分:4)
在iPhone 7,iPhone 8& iPhone X模拟器(Xcode 9,iOS 11),如果它包含某些颜色,我的应用程序图标将不会显示!
以下是使用AdobeRGB颜色配置文件的两个图标图像,60pt @ 2x。我用ImageMagick生成了这些 - 唯一的区别是它们是不同的颜色。
图标A:#74B3BE
此图标在模拟器(iPhone 8)中正常显示
图标B:#E58921
此图标在模拟器中不起作用:
将图标B的单个像素颜色添加到图标A中也会导致它停止工作。
从图标中删除AdobeRGB颜色配置文件可以解决问题,但会导致颜色褪色。我使用的解决方案是首先将图标转换为sRGB配置文件(我使用ImageMagick)。
这是否是物理iPhone 8 / iPhone X上的问题还有待观察,因为它们还没有出售。其他模拟硬件(如iPhone 6s)即使运行iOS 11也没有出现此问题。
附录:在我测试期间(我已经失去了一天!)我还观察了图标中的像素密度元数据,影响图标是否出现在模拟器中。 72dpi会工作,150dpi不会。不幸的是,我改变了违规项目,因此无法重现这种情况。
答案 2 :(得分:1)
检查此链接App Icon not showing up, although I have added in Xcode 5
这可能是一个XCode 6错误,添加的图标实际上并未包含在应用程序包中,但您可以通过转到Build Phases,展开Copy Bundle Resources,然后按下底部的“+”符号来解决它手动将图标文件添加到此类别。
此外,iOS 5/6似乎有一个错误,即即使图标文件包含在捆绑包中,屏幕也不会更新应用程序图标。要解决此问题,您可以将应用程序图标拖到文件夹中,然后iOS将更新它的外观。
答案 3 :(得分:1)
有同样的问题。
您还应该检查您是否拥有正确的值"资产目录应用程序图标集名称"在"项目 - >构建设置"。
在我的情况下它是空的(只是"")。当我添加正确的值时(链接器将在Assets.xcassets中找到应用程序图标的部分),在我的情况下" AppIcon",一切都按预期工作。
由于我在Assets.xcassets中有很多资源,我重新安排了不同部分的一些资源等,所以AppIcon部分不在"根目录"目录。也许这就是问题的原因。
答案 4 :(得分:0)
只需从模拟器删除应用程序,清除项目(点击Date.UTC
)然后再次运行