从最新的Xcode Beta 6安装构建时,我看不到iOS AppIcon。可能出现的错误是什么?
我已经包含了必需的图标尺寸,包括1024x1024。
答案 0 :(得分:25)
你并不孤单。
在我的项目中,我发现以前运行正常的AppIcon资源不再导致呈现应用程序图标。一系列实验发现如下:
结合在一起,这个阶段的要点表明图像文件本身可能存在问题。因此,我尝试了各种步骤来解决这个问题:
以上所有内容都表明Xcode 9中存在拒绝或未能使用以前正在运行的应用程序图标图像的内容,并且创建以前很好的应用程序图标的某些过程会生成Xcode 9无法使用的图像。也许png规范中有一些东西是有效的png,但不是Xcode 9的可接受应用程序图标。最明显的想法是有透明度的应用程序图标可能被拒绝,但我不相信我使用的图标图像包含透明度,我试图在上面的测试中消除这一点。
一些用户报告的完全独立的原因与CocoaPods集成有关。请参阅可能的临时修复here和理论上解决此问题的pull request that has been created for Cocoapods的讨论。我说理论上是地址,因为我已经尝试过实现这两个解决方案,而且他们都没有在我遇到它的项目中解决问题。
答案 1 :(得分:19)
为清楚起见,请确保颜色配置文件设置为: sRGB IEC61966-2.1 。在我偶然发现这个问题之前,我的图标没有颜色配置文件。
我确定其他颜色配置文件必须正常工作但我还没有完成测试。
这可以通过以下方式预览:
答案 2 :(得分:13)
我的App图标遇到了同样的问题。它们显示在某些设备上但不显示在其他设备上我进一步研究了这个问题,发现并非所有的图标都被展平,并且所有图标的颜色空间都不正确(Adobe RGB)。我将所有图标展平并转换为SRGB色彩空间,然后替换现有图标。所有图标现在都显示完美。
答案 3 :(得分:12)
尝试各种解决方案,例如"将颜色配置文件(sRGB IEC61966-2.1)设置为图标" 和" CocoaPods解决方案" 如上所述,或者"将应用程序图标源名称更改为proect设置中的不同资产名称" , 我发现了一个非常基本的解决方案如下:
答案 4 :(得分:8)
一旦发现另一个简单修复:
我在XCode 9.0上遇到了同样的问题,这个项目在XCode 8下工作得非常好,当我升级解决方案时,iOS 10突然失去了它的图标(仅在iPad上)。
撕掉我的头发,做了sRGB的事情,做了透明度的事情。
原来我的目标info.plist文件中仍然有以下空条目
CFBundleIcons〜ipad的
我很久以前就开始在目标构建设置中指定它。
解决方案是简单地从info.plist文件中删除此条目(单击有用的小" - "按钮。重建和测试,一切都再次完美。
答案 5 :(得分:2)
<强>问题:强>
<强> 1。应用程序图标未出现在iOS 11或Xcode 9上。
<强> 2。应用程序图标在iPhone上可见但在iPad中无法显示。
对我有用的解决方案:
问题似乎与Xcode 9和iOS 11的构建过程有关。过去,Apple一直在使用~iPad扩展来区分iPhone和iPad的资产。
info.plist有一个字典,其中包含“CFBundleIcons~ipad”键,它没有任何项目(如Xcode 9中所示),这导致bundle从info.plist文件中获取图像而不是图像。 xcassets,因此Xcode 9上的应用程序图标没有出现。
从.plist 文件中删除此密钥对我的构建工作,而其他人做了&#39; nt。
答案 6 :(得分:2)
就我而言,这些解决方案都无效。
我的图标没有显示,因为它们没有正确的尺寸。一旦我正确调整它们的大小,我的问题就得到了解决。
答案 7 :(得分:2)
TL; DR:创建“复制捆绑资源”构建阶段
在这一天和其他线程上尝试了几乎所有解决方案的一天半后,我发现了一个非常不同的解决方案对我有用。查看我的构建文件夹中的app包,我注意到App Icon png文件没有被复制到其中。我从头开始创建了一个空白的应用程序,添加了一个应用程序图标,在该空白应用程序中,它确实复制了图标文件。什么给出了什么?
空白应用程序有一个“复制包资源”构建阶段,复制了Assets.xcassets包。我的没有。所以我创建了一个,添加了我的Images.xcassets,并且presto change-o,我的存档得到了验证。 NB我很确定我之前从未有过构建阶段,但是我能在一个月前提交构建版本......
答案 8 :(得分:2)
我花了一整天的时间浪费时间。我检查了我的png文件以确保没有透明度,为了确保正确的RGB设置,我还按照here的说法更改了podfile。没有任何效果。升级到Xcode 9 / iOS 11似乎打破/改变了一些东西,因为之前我为同一个应用程序显示了图标。
无论如何,为我修复的是更改Assets.xcassets(默认= AppIcon)中iOS应用程序图标的名称,并更改资产目录应用程序图标集名称&#39;在“构建设置”中与新名称对齐。
扼杀,在我开始工作之后,我在Assets.xcassets中更新了AppIcon中的所有图像,我又得到了一张空白图像!重复上述步骤,问题第二次解决。
答案 9 :(得分:2)
修改:这需要在gym
的中间触发,我不知道该怎么做。一旦存档出现在文件夹中,运行错误修复就可以解决问题。如果有人可以帮助改善这一点,请告诉我!
我使用Fastlane遇到了这个问题,我编写了一个shell脚本,我将其作为一个通道运行来解决问题。修复本身是来自此thread中的用户stubyte的代码。
以下是我archive_fix.sh
的脚本:
#!/bin/bash
# navigate to latest archive created
cd ~/Library/Developer/Xcode/Archives
foo=$(ls -t | head -n1) && cd $foo
line=$(ls -t | head -n1) && cd "$line"
# bug fix
find Products/ -name Info.plist -print0 | xargs -0n1 plutil -replace BuildMachineOSBuild -string 16A323
在我的Fastfile中,我跑了:
sh("./archive_fix.sh")
答案 10 :(得分:1)
来自gales_vasile的回答:https://forums.developer.apple.com/thread/86290
为我工作。
这应该是CocoaPods中的一个错误,如此处讨论https://github.com/CocoaPods/CocoaPods/issues/7003 我遇到了同样的问题,但我在接下来的步骤中修复了它:
1)将此代码添加到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
2)更改应用的copy_pods_resources_path并运行“pod update”。 这应该可以解决你的问题!
答案 11 :(得分:1)
这个问题是由iOS 11的 CocoaPods 引起的。经过一些研究我找到了一个解决方案:
post_install do |installer|
copy_pods_resources_path = "Pods/Target Support Files/Pods-XXX/Pods-XXX-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
只需将上面的内容添加到podfile,然后在终端中执行 pod install 。 但是上面的代码有限制。 可能有这样的条件,比如我们有多个pod,然后我们需要循环运行。
post_install do |installer|
installer.aggregate_targets.each do |target|
copy_pods_resources_path = "Pods/Target Support Files/Pods-Fixr/Pods-Fixr-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
端
有多个文件时工作正常。
答案 12 :(得分:0)
1-将此代码添加到Podfile:
observeOn
2- pod install
注意:请确保替换为: 豆荚-IconTest / Pods-IconTest-resources.sh
因为IconTest是您应用的名称
或者您可以通过搜索.sh :(检查图像)
来获取此路径答案 13 :(得分:0)
图标集中的图标大小不正确会导致应用程序图标无法显示@ iOS11。经过多天的调查,我在构建日志中找到了这个条目:
显示所有消息,过滤&#34; icon&#34;。警告: ApplicationIcons.appiconset/Icon-40@2x.png是80x80,但应该是 60X60。
虽然此消息存在,但我的应用图标始终未显示(即会看到默认的iOS应用徽标)。我更正了问题图标文件(使用正确大小的图像交换它),现在我的应用程序图标始终显示。出于某种原因,更改资产目录应用程序图标集名称&#39;将此问题更正为一次性。后续的应用程序构建将导致再次显示默认图标。
答案 14 :(得分:0)
在我的情况下,其中一个Pod包含.xcasset。删除它解决了这个问题。
答案 15 :(得分:0)
在我的情况下,在我更改
后,应用程序图标开始在Finder中正确显示<key>CFBundleIconFile</key>
<string>AppIcon</string>
到
<key>CFBundleIconFile</key>
<string>AppIcon.icns</string>
Info.plist中的。我的XCode版本是8.3.3
答案 16 :(得分:0)
更改颜色配置文件的简单方法是使用Automator。 为每个文件和文件夹创建一个作业
并保存。 然后,您可以标记资产中的所有图标文件,然后选择作业。 图标的所有配置文件都将被制作:)
答案 17 :(得分:0)
在尝试了大量这些解决方案后,这就是为我解决的问题:
1)。删除任何我的Pod文件夹中的任何.xcassets文件夹
然后删除对这些文件的任何引用:
2)。 Pods&gt;目标支持文件&gt; Pods-YourApp-resources.sh
非常,在我的应用程序&gt;构建阶段&gt;复制Pod资源
3)。删除对相同.xcassets路径的任何引用
之后为了安全起见我做了一个Clean,Clean构建文件夹,然后删除了Derived Data。关闭Xcode并重新打开,瞧!
希望这对某人有所帮助,我花了大约半天的时间来解决这个问题......
答案 18 :(得分:0)
经过几天的研究,我发现了问题所在,我认为罪魁祸首是导致iOS 11上缺少应用程序图标问题的xcode 10 beta。
我降级到xcode 9.4.1,现在该图标也出现在ios 11上。
答案 19 :(得分:0)
就我而言
我有一个使用.icns
而不是.xcassets
的旧项目。
该应用程序甚至在我...之后仍坚持使用旧图标。
Copy Bundle Resources
构建阶段中删除了对图标文件的所有引用; .icns
文件;实际上,那里绝对没有.icns
文件!~/Library/Developer/Xcode/DerivedData
; Assets.xcassets
,并测试了该捆绑软件的重命名方式:images
,Images
,Icons
等; Icon Set Creator
生成的图标集图像;该图标集适用于新的空macOS Cocoa项目。对我有用的是几次绝望的尝试:
.entitlements
。CFBundleIconFIle
属性并将其重新添加到目标的Info.plist。将其命名为AppIcon
。App Icon
设置中设置General
属性以使用我的.xcassets
。.xcassets
在我身后生成了另一个名为AppIcon-2
的空AppIcon,因此从.xcassets
手动将其删除,然后将目标的应用图标重置为AppIcon
。 / li>
.xcassets
读入Copy Bundle Resources
构建阶段。重建后,这次将正确的.icns
复制到应用程序包的资源文件夹中。
答案 20 :(得分:0)
Andrew Dunkin在评论另一个建议的答案时,我的图像资产未包含在“复制捆绑资源”构建阶段中。我花了比寻找该解决方案多得多的时间,所以我希望我可以节省一些时间。
答案 21 :(得分:0)