有没有办法在ios中动态更改应用程序图标?

时间:2017-09-15 07:09:34

标签: ios objective-c iphone cocos2d-iphone

我想动态更改应用图标。我从服务器收到图像。如何将该图像用作替代应用程序图标。请确保答案清晰。 (但据我所知,替代app图标文件应该在我们的项目plist文件中。)

提前致谢。

2 个答案:

答案 0 :(得分:4)

您无法在运行时使用从服务器下载的图像更改应用程序图标。来自documentation

  

您必须使用应用CFBundleIcons文件的Info.plist键声明应用的主要和备用图标。有关如何为应用配置备用图标的信息,请参阅Information Property List Key ReferenceCFBundleIcons键的说明。

要动态设置应用图标,您必须能够在Info.plist中对其进行定义,但您的Info.plist已包含在您的应用套装中,并且您的应用套装是只读的,因此,您没有对Info.plist文件的运行时写入权限。因此,您无法将应用程序图标更改为在运行时动态下载的图像

答案 1 :(得分:1)

Apple推出了一项很酷的功能,以便开发人员能够以编程方式更改应用程序图标。

在Apple的API文档中,有三件事值得一看:

var supportsAlternateIcons: Bool { get }
var alternateIconName: String? { get }
func setAlternateIconName(String?, completionHandler: ((Error?) -> Void)? = nil)

Info.plist

现在我们只调用方法:

changeIcon(to: "icon-imageName")

参考:https://developer.apple.com/documentation/uikit/uiapplication/2806815-supportsalternateicons