在微博上看到了 @安財(cái)小小生分享的iOS 10.3新增功能:通過API動(dòng)態(tài)修改APP的圖標(biāo),自己深入了解了一下。
前言
現(xiàn)在每逢公司運(yùn)營活動(dòng)需要或者迭代改版按摘,設(shè)計(jì)就可能對(duì)APP圖標(biāo)進(jìn)行修改虑灰。舉個(gè)例子:去年猴年就有很多APP在圖標(biāo)上添加了緊箍的元素。
當(dāng)活動(dòng)結(jié)束后仪芒,圖標(biāo)又會(huì)進(jìn)行更改,每次更改都需要提交版本?????♂?……會(huì)不會(huì)這個(gè)新增功能就是蘋果傾聽"民意"的結(jié)果呢耕陷???
實(shí)現(xiàn)方法
- 在Info.plist添加備用圖標(biāo)和默認(rèn)圖標(biāo),icon圖片名不需要包含文件擴(kuò)展名
CFBundleIcons
是一個(gè)字典掂名,字典中包含所有APP所有icon信息。字典中的字段包括:
- CFBundlePrimaryIcon:APP默認(rèn)icon
- CFBundleAlternateIcons:APP備用icons
- UINewsstandIcon:用于Newsstand的icons
- 實(shí)現(xiàn)代碼
首先需要判斷系統(tǒng)是否支持alternate icons,然后通過setAlternateIconName:completionHandler:
修改應(yīng)用圖標(biāo)
審核意見
最近在瀏覽審核指南時(shí)看到如下的提示:
4.6 備選 App 圖標(biāo)
App 可以使用自定圖標(biāo)以傳達(dá)特定信息 (例如表達(dá)對(duì)某個(gè)運(yùn)動(dòng)團(tuán)隊(duì)的喜愛)哟沫,前提是每次更改都由用戶發(fā)起饺蔑,并且 app 中應(yīng)包含恢復(fù)至原始圖標(biāo)的設(shè)置。所有圖標(biāo)變體必須與 app 的內(nèi)容相關(guān)嗜诀,并且更改內(nèi)容在所有系統(tǒng)資源之間應(yīng)保持一致猾警,以便“設(shè)置”和“通知”等位置中顯示的圖標(biāo)與新的 Springboard 圖標(biāo)相吻合孔祸。這項(xiàng)功能不可用于動(dòng)態(tài)、自動(dòng)或連續(xù)性更改发皿,例如用于反映最新天氣信息和日歷通知等崔慧。
總結(jié)
如有不正,感謝指出穴墅。
感謝開源惶室。