更改 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)

我可以更改我的 iPhone 应用程序大图标吗?

如何更改标签栏图标的突出显示颜色? (iPhone/iPad)

ios7及更高版本导致图像图标错误

iphone6s按图标怎么显示菜单啊?

我们可以以编程方式更改在 iPhone 中创建的快捷方式的图标和名称吗