動態(tài)更換App圖標(biāo)
iOS 10.3之前,App圖標(biāo)是固定的,只能通過App發(fā)新版來更新。iOS 10.3引入了一個(gè)新的API,它允許在App運(yùn)行的時(shí)候,可以通過代碼為App更換iCON。所以我們現(xiàn)在經(jīng)常可以看到,在未更新App的情況下,桌面上的App圖標(biāo)被更換了!
雖然蘋果提供了更換iCON的功能,但可更換的iCON是有限制的,它需要開發(fā)者提前預(yù)置在工程里,并做好相應(yīng)配置。更改iCON的時(shí)候,只能在有限的選項(xiàng)中進(jìn)行選擇。
該功能應(yīng)用的場景
1、白天/夜間模式切換,在切換App主色調(diào)同時(shí)切換App圖標(biāo)。
2、各類皮膚主題(淘寶就可換膚),附帶App圖標(biāo)一塊更換。
3、利用App圖標(biāo)表達(dá)某種特定功能,如提示當(dāng)前天氣。
4、圖標(biāo)促銷提示,如淘寶京東特定節(jié)日:11.11、6.18,提前更換App圖標(biāo)。
具體如何操作步驟:
1、新建測試項(xiàng)目,設(shè)置項(xiàng)目的主App圖標(biāo)。方式和正常設(shè)置Appicon方式一樣。
2、配置需要?jiǎng)討B(tài)展示的App圖標(biāo)圖片。新建一個(gè)文件夾AppIcons,將需要展示的圖片放在里面,配置info.plist文件。具體的參數(shù)說明可以看一下官方文檔Core Foundation Keys中的CFBundleIcons等參數(shù)。
3、更換AppIcon圖標(biāo)。
4、去掉更換icon時(shí)的彈框。在設(shè)置icon的時(shí)候,會有個(gè)系統(tǒng)彈框,這對用戶會不太友好,可以使用Runtime,對UIViewController進(jìn)行擴(kuò)展來隱藏彈框。
需要注意的是:
根據(jù)蘋果審核條款4.6項(xiàng),“App中應(yīng)包含恢復(fù)至原始圖標(biāo)的設(shè)置?!遍_發(fā)者需要按照要求添加一個(gè)一鍵恢復(fù)原始圖標(biāo)的功能,否則會收到拒審郵件。