iOS 10.3 - How to Change App Icon Programmatically

iOS 10.3 - How to change app icon programmatically

Yes, iOS 10.3 finally gives developers the ability to change their app’s icon programmatically.

It is possible to change appIcon from iOS 10.3. For that you need to set supportsAlternateIcon to Yes in info.plist.

Both primary and secondary icons should be added in CFBundleIcons key of your app's Info.plist file.

//Info.plist
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>Icon1</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>alternater1</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>Icon2</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>alternater2</string>
</array>
</dict>
</dict>
</dict>

To change App Icon following UIApplication method needs to be called:

Objective C:

[[UIApplication sharedApplication] setAlternateIconName:@"alternater2" completionHandler:^(NSError * _Nullable error) {
NSLog(@"Error...");
}];

Swift 3:

if UIApplication.shared.supportsAlternateIcons{
UIApplication.shared.setAlternateIconName("alternater2", completionHandler: { (error) in
print(error ?? "")
})
}

For more detailed tutorial, See:

Apple Document: setAlternateIconName(_:completionHandler:)

How to change your app icon dynamically with setAlternateIconName()

Can I change app icon programmatically

No, the icon is specified in the application bundle, which you must not change. If you change it, your app signature will become invalid (not the same checksum) and thus your app won't run anymore.

Dynamically alter App Icon on iOS and Android

https://medium.com/flutter-community/programatically-change-ios-app-icon-in-flutter-c9e84bc541a2

Maybe this would help. Here's a plugin too.

https://pub.dev/packages/flutter_dynamic_icon



Related Topics



Leave a reply



Submit