【iOS】動態修改APP圖示

weixin_34321977發表於2017-04-01

在微博上看到了 @安財小小生分享的iOS 10.3新增功能:通過API動態修改APP的圖示,自己深入瞭解了一下。

前言


現在每逢公司運營活動需要或者迭代改版,設計就可能對APP圖示進行修改。舉個例子:去年猴年就有很多APP在圖示上新增了緊箍的元素。


1762316-52bc09cfd465adda.jpg
猴年元素

當活動結束後,圖示又會進行更改,每次更改都需要提交版本??‍♂️……會不會這個新增功能就是蘋果傾聽"民意"的結果呢??

實現方法


1762316-b3cbddff1ce081bf.png
Info.plist設定

1762316-c4cb4f41c296f1bb.png
實現程式碼
  1. 在Info.plist新增備用圖示和預設圖示,icon圖片名不需要包含副檔名
    CFBundleIcons是一個字典,字典中包含所有APP所有icon資訊。字典中的欄位包括:
  • CFBundlePrimaryIcon:APP預設icon
  • CFBundleAlternateIcons:APP備用icons
  • UINewsstandIcon:用於Newsstand的icons
  1. 實現程式碼
    首先需要判斷系統是否支援alternate icons,然後通過setAlternateIconName:completionHandler:修改應用圖示
    1762316-1ef49d9af1affb23.gif
    效果圖

稽核意見

最近在瀏覽稽核指南時看到如下的提示:

4.6 備選 App 圖示
App 可以使用自定圖示以傳達特定資訊 (例如表達對某個運動團隊的喜愛),前提是每次更改都由使用者發起,並且 app 中應包含恢復至原始圖示的設定。所有圖示變體必須與 app 的內容相關,並且更改內容在所有系統資源之間應保持一致,以便“設定”和“通知”等位置中顯示的圖示與新的 Springboard 圖示相吻合。這項功能不可用於動態、自動或連續性更改,例如用於反映最新天氣資訊和日曆通知等。

總結


如有不正,感謝指出。
感謝開源。

參考資料


相關文章