我的iOS应用在模拟器中没有显示应用图标

4

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

enter image description here


检查项目的图像资源目录。 - Mrug
你的 Images.assets 看起来像什么? - Sulthan
请分享 Images.xcassets 的屏幕截图。您是否已经将您的图片添加到其中? - Shruti
我的资产目录中有所有的图像,我也将所有的图像拖放到特定位置,但它无法在模拟器上显示... 我一遍又一遍地删除应用程序,但它无法解决问题???#Sulthan #Mrug - SoftCoder
现在看到那张图片 #Shruti - SoftCoder
https://dev59.com/cXfZa4cB1Zd3GeqPSojq - Omer Waqas Khan
6个回答

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

请务必将第二行路径名中的“IconTest”更改为您的项目名称。 运行 'pod update',您就可以恢复应用程序图标了。

来源

此修复来自Cocoapods团队。请查看此处的讨论: https://github.com/CocoaPods/CocoaPods/issues/7003


2
我希望我能给它点赞100次!为此浪费了太多时间。谢谢! - lewis
在我的Xcode 12和iPhone 11 iOS 14.0上无法工作。 - Mudassir

5
在 iPhone 7、iPhone 8 和 iPhone X 模拟器 (Xcode 9, iOS 11) 上,如果我的应用图标包含某些颜色,则无法显示!下面是两个图标图像,60pt@2x,均使用 AdobeRGB 颜色配置文件。我使用 ImageMagick 生成这些图像 - 唯一的区别是它们的颜色不同。图标 A: #74B3BE

Icon A: #74B3BE

这个图标在模拟器(iPhone 8)中显示正常。

Icon A working in simulator

图标 B:#E58921

Icon B: E58921

此图标在模拟器中无法使用:

Icon B failing in simulator

在图标A中添加一个像素的图标B颜色也会导致其停止工作。从图标中删除AdobeRGB颜色配置文件可以解决问题,但会导致颜色变浅。我使用ImageMagick将图标转换为sRGB配置文件来解决这个问题。尚不清楚这是否是iPhone 8 / iPhone X等实体设备上的问题,因为它们尚未上市销售。其他模拟硬件(如iPhone 6s)没有出现这个问题,即使它运行iOS 11。补充说明:在我的测试中(我已经失去了一天时间!),我还观察到图标中的像素密度元数据影响图标是否出现在模拟器中。 72dpi可以工作,而150dpi则不行。不幸的是,我改变了有问题的项目,自那以后就无法再次复制该情况。

1
将应用程序图标色域从“任意”更改为“sRGB和Display P3”,然后将相同的图标添加到3x Display P3正方形中,这对我解决了问题。 - codeinthesky

3

请查看此链接应用程序图标未显示,尽管我已在Xcode 5中添加了它

这可能是XCode 6的一个错误,即添加的图标实际上未包含在应用程序捆绑包中,但您可以通过进入“Build Phases”,展开“Copy Bundle Resources”,然后按底部的“+”符号手动将图标文件添加到此类别来解决它。

此外,iOS 5/6似乎存在一个错误,即使将图标文件包含在捆绑包中,屏幕也不会更新应用程序图标。要解决它,您可以将应用程序图标拖到文件夹中,然后iOS将更新其外观。


所有的图标都在“扩展复制包资源”中,我能手动删除这些图标然后再添加吗? - SoftCoder
@SoftCoder 很高兴我能帮到你 :) - Shruti

2

我也曾遇到同样的问题。

你还应该检查在“项目 -> 构建设置”下是否正确输入了“Asset Catalog App Icon Set Name”键的值。

在我的情况下,它是空的(只有“”)。当我添加了正确的值(链接器将在Assets.xcassets中找到应用程序图标的部分),在我的情况下是“AppIcon”,一切都如预期般工作。

由于我的Assets.xcassets中有很多资源,我重新排列了一些资源到不同的部分等等,因此AppIcon部分并不在目录的“根目录”中。也许这就是问题的原因。


1

请在Target->您的项目->构建设置->资源目录编译器选项下检查主应用程序图标集名称值是否设置为所需图标。

另一个提示->如果您在构建设置中没有资源目录编译器选项。您可能需要从头开始重新构建您的项目。


0

只需从模拟器中删除应用程序,清理项目(按下CMD + K),然后再次运行即可。


直到出现问题为止 #l0gg3r - SoftCoder
嗯,还要检查图标的尺寸是否符合要求。 - l0gg3r
是的,所有的尺寸都很好......但是它无法在模拟器上显示图标.....它可以正确显示启动画面,但是图标有问题。#l0gg3r - SoftCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接