前言
在iOS 10.3之前,App應用程序圖標更新必須通過向 Apple 提交 ipa 包才能實現,但是在iOS 10.3之后,蘋果官方提供了相關的API來實現這個功能,再配合公司后臺接口,就能實現App應用程序圖標的動態更換。
API,如下圖:
具體步驟
一、配置App應用程序圖標
(1)導入圖片資源;
注:動態更換的應用程序圖標是不能放在 Assets.xcassets 里,但是正常顯示的應用程序圖標還是可以放在 Assets.xcassets 里;
(2)配置info.plist;
在info.plist中,添加Icon files(iOS 5),這里的Icon files(iOS 5)是個字典,其中包含的key值有:
CFBundlePrimaryIcon -> Primary Icon
CFBundleAlternateIcons
UINewsstandIcon -> Newsstand Icon
CFBundlePrimaryIcon -> Primary Icon****:用于設置app的主icon,可以在這里的Icon files數組內添加,有多個的話,依次添加;當然這里也可以不用填寫,直接在Assets.xcassets 里配置;
UINewsstandIcon -> Newsstand Icon:暫時用不到,不用管,也可以刪除;
CFBundleAlternateIcons:key值CFBundleAlternateIcons需要自己手動添加的 ,類型為字典,在這個字典里配置所有需要動態修改的icon:鍵為icon的名稱,值為一個字典(這個字典里包含兩個鍵:CFBundleIconFiles,其值類型為Array,內容為icon的名稱;UIPrerenderedIcon,其值類型為bool,內容為NO,也可以不加此key);
注:CFBundleIconFiles里面可以放多個尺寸的圖片。
二、示例代碼
三、運行結果
每次更換成功都有彈框提示,提示如下圖:
更多文章
CocoaPods開源庫的搭建
CocoaPods搭建私有庫
CocoaPods搭建私有庫遇到問題
CocoaPods私有庫的升級維護
SKStoreReviewController之程序內評價
App應用程序圖標的動態更換
開源框架 MGJRouter_Swift
iOS的MVP設計模式
iOS插件化
iOS FMDB的使用
Swift之ReactiveSwift
OC之ReactiveCocoa
OC之ReactiveCocoa進階
iOS 性能考慮