我的iOS应用程序没有在模拟器中显示App Icon

Sof*_*der 3 iphone objective-c ios xcode6

我已经在资产目录和我的应用程序中添加了所有必需的图标,但它没有在模拟器上显示图标

在此输入图像描述

And*_*ris 11

iOS 11 Xcode 9

如果您正在使用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
Run Code Online (Sandbox Code Playgroud)

务必将第二行路径名中的"IconTest"值更改为项目名称.运行'pod update',然后回复你的应用程序图标.

资源

此修复程序来自Cocoapods团队.请参阅此处的主题:https: //github.com/CocoaPods/CocoaPods/issues/7003

  • 我希望我可以100次投票!浪费了很多时间.谢谢! (2认同)

Jam*_*mes 5

在 iPhone 7、iPhone 8 和 iPhone X 模拟器(Xcode 9、iOS 11)上,如果我的应用程序图标包含某些颜色,则不会显示!

下面是两个图标图像,60pt@2x,都使用 Adob​​eRGB 颜色配置文件。我用 ImageMagick 生成了这些——唯一的区别是它们的颜色不同。

图标 A:#74B3BE

图标 A:#74B3BE

此图标在模拟器中显示良好(iPhone 8)

图标 A 在模拟器中工作

图标 B:#E58921

图标 B:E58921

此图标在模拟器中不起作用:

模拟器中的图标 B 失败

将图标 B 颜色的单个像素添加到图标 A 中也会导致它停止工作。

从图标中删除 Adob​​eRGB 颜色配置文件可以解决问题,但会导致颜色褪色。我使用的解决方案是首先将图标转换为 sRGB 配置文件(我使用了 ImageMagick)。

这是否是实体 iPhone 8 / iPhone X 的问题还有待观察,因为它们尚未上市销售。其他模拟硬件(如 iPhone 6s)即使运行 iOS 11 也没有出现此问题。

附录:在我的测试期间(我已经在这个问题上迷失了一天多!)我还观察到图标中的像素密度元数据会影响图标是否出现在模拟器中。72dpi 有效,150dpi 无效。不幸的是,我更改了违规项目,此后一直无法重现该案例。