iOS 10.3 - 如何以编程方式更改应用程序图标

时间:2017-04-05 14:10:07

标签: ios objective-c swift ios10.3 appicon

iOS 10.3附带动态应用图标更改功能。开发人员现在可以在没有应用更新的情况下更改应用图标。

我想动态更改我的应用图标,如何以编程方式更改我的应用图标。

提前致谢。

1 个答案:

答案 0 :(得分:9)

是的,iOS 10.3最终使开发人员能够以编程方式更改其应用程序的图标。

可以从iOS 10.3更改appIcon。为此,您需要在supportsAlternateIcon中将Yes设置为info.plist

主要和辅助图标都应添加到应用CFBundleIcons文件的Info.plist键中。

//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>

要在UIApplication方法之后更改App Icon,需要调用:

目标C:

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

斯威夫特3:

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

有关更详细的教程,请参阅:
Apple Document: setAlternateIconName(_:completionHandler:)
How to change your app icon dynamically with setAlternateIconName()