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.
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
CFBundleIconskey of your app'sInfo.plistfile. For information about how to configure alternate icons for your app, see the description of theCFBundleIconskey 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
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With