更改 iPhone 上的应用程序图标错误“文件不存在”。
Posted
技术标签:
【中文标题】更改 iPhone 上的应用程序图标错误“文件不存在”。【英文标题】:Changing app icon on iPhone error "The file doesn’t exist." 【发布时间】:2021-03-30 21:02:44 【问题描述】:我正在尝试通过代码更改应用程序图标,但它似乎不起作用。下面是我的 info.plist
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>icon_60pt</string>
</array>
</dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>AppIcon-2</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>icon.dark_60pt</string>
</array>
</dict>
</dict>
</dict>
这是我用来更改图标的代码:
@objc func changeIcon()
//Check if the app supports alternating icons
guard UIApplication.shared.supportsAlternateIcons else
return;
let name = "icon.dark_60pt"
//Change the icon to a specific image with given name
UIApplication.shared.setAlternateIconName(name) (error) in
//After app icon changed, print our error or success message
if let error = error
print("App icon failed to due to \(error.localizedDescription)")
else
print("App icon changed successfully.")
最后,这里是带有应用图标的文件夹:App icon folder screenshot
如您所见,我在所有地方都使用相同的名称“icon.dark_60pt”,但我仍然收到错误消息“文件不存在。”
由于错误域=NSCocoaErrorDomain Code=4“文件不存在”,应用程序图标失败。 UserInfo=_LSLine=191, NSUnderlyingError=0x6000026e85d0 Error Domain=LSApplicationWorkspaceErrorDomain Code=-105 "iconName not found in CFBundleAlternateIcons entry" UserInfo=_LSLine=179, NSLocalizedDescription=iconName not found in CFBundleAlternateIcons entry, _LSFunction=-[LSAltIconManager _setAlternateIconName forIdentifier:withIconsDictionary:error:], _LSFunction=-[LSAltIconManager _setAlternateIconName:forIdentifier:withIconsDictionary:error:]
我做错了什么?
【问题讨论】:
尝试再次将它们添加到您的项目包中,但不要使用文件夹。确保选中“如果需要,复制项目”选项。 @LeoDabus 谢谢,刚刚试了一下 - 还是不行。 【参考方案1】:我认为您必须使用图标的名称,而不是文件的名称。用这个改变 let name 行:
let name = "AppIcon-2"
【讨论】:
非常感谢,你是对的。这很奇怪,因为在我遵循的多个教程中,每个人都使用文件名来代替......我想苹果改变了它......?还是谢谢!以上是关于更改 iPhone 上的应用程序图标错误“文件不存在”。的主要内容,如果未能解决你的问题,请参考以下文章
更改iPhone和iPad上的备用图标(适用于iPhone和iPad的setAlternateIconname)