我已经在资源目录和应用程序中添加了所有必需的图标,但是模拟器上没有显示图标。
如果你正在使用 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
图标 B:#E58921
此图标在模拟器中无法使用:
在图标A中添加一个像素的图标B颜色也会导致其停止工作。从图标中删除AdobeRGB颜色配置文件可以解决问题,但会导致颜色变浅。我使用ImageMagick将图标转换为sRGB配置文件来解决这个问题。尚不清楚这是否是iPhone 8 / iPhone X等实体设备上的问题,因为它们尚未上市销售。其他模拟硬件(如iPhone 6s)没有出现这个问题,即使它运行iOS 11。补充说明:在我的测试中(我已经失去了一天时间!),我还观察到图标中的像素密度元数据影响图标是否出现在模拟器中。 72dpi可以工作,而150dpi则不行。不幸的是,我改变了有问题的项目,自那以后就无法再次复制该情况。请查看此链接应用程序图标未显示,尽管我已在Xcode 5中添加了它
这可能是XCode 6的一个错误,即添加的图标实际上未包含在应用程序捆绑包中,但您可以通过进入“Build Phases”,展开“Copy Bundle Resources”,然后按底部的“+”符号手动将图标文件添加到此类别来解决它。
此外,iOS 5/6似乎存在一个错误,即使将图标文件包含在捆绑包中,屏幕也不会更新应用程序图标。要解决它,您可以将应用程序图标拖到文件夹中,然后iOS将更新其外观。
我也曾遇到同样的问题。
你还应该检查在“项目 -> 构建设置”下是否正确输入了“Asset Catalog App Icon Set Name”键的值。
在我的情况下,它是空的(只有“”)。当我添加了正确的值(链接器将在Assets.xcassets中找到应用程序图标的部分),在我的情况下是“AppIcon”,一切都如预期般工作。
由于我的Assets.xcassets中有很多资源,我重新排列了一些资源到不同的部分等等,因此AppIcon部分并不在目录的“根目录”中。也许这就是问题的原因。
请在Target->您的项目->构建设置->资源目录编译器选项下检查主应用程序图标集名称值是否设置为所需图标。
另一个提示->如果您在构建设置中没有资源目录编译器选项。您可能需要从头开始重新构建您的项目。
只需从模拟器中删除应用程序,清理项目(按下CMD + K
),然后再次运行即可。
Images.xcassets
的屏幕截图。您是否已经将您的图片添加到其中? - Shruti