user3467582
user3467582

Reputation: 49

Is there any way to change the app icon dynamically in ios?

I want to change the app icon dynamically. I receive the image from the server. How do I use that image as alternative app icon. Please make sure the answer is clear. (but as I know, the alternative app icon file should be in our project plist file).

Thanks in advance.

Upvotes: 3

Views: 3144

Answers (2)

Byka
Byka

Reputation: 87

Apple launches a cool function so that developers are able to programmatically change the app icon.

In Apple's API document, there are 3 things worth a glance:

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

Info.plist

Now we just call the method:

changeIcon(to: "icon-imageName")

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

Upvotes: 1

Michael Hulet
Michael Hulet

Reputation: 3499

You cannot change your app icon with an image downloaded from a server at runtime. From the documentation:

You must declare your app's primary and alternate icons using the CFBundleIcons key of your app's Info.plist file. For information about how to configure alternate icons for your app, see the description of the CFBundleIcons key in Information Property List Key Reference.

In order to dynamically set an app icon, you must be able to define it in your Info.plist, but your Info.plist is included in your app bundle, and your app bundle is read-only, so you do not have runtime write access to your Info.plist file. Thus, you cannot change your app icon to an image dynamically downloaded at runtime

Upvotes: 7

Related Questions