iOS 10.3 - How to change app icon programmatically [duplicate]
Asked Answered
D

1

15

iOS 10.3 comes with dynamic app icon changing feature. Developers will now be able to change app icons without an app update.

I want to change my app icon dynamically, how can i change my app icon programmatically.

Thanks in advance.

Dinse answered 5/4, 2017 at 14:10 Comment(3)
developer.apple.com/reference/uikit/uiapplication/… ?Ravishment
Duplicate of: #41951494Gravamen
hackingwithswift.com/example-code/uikit/…Vaclava
M
19

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()

Mantelet answered 2/5, 2017 at 8:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.