官方

iOS10.3新增了可以讓開(kāi)發(fā)者去更改app的icon,接下來(lái)看看怎么更改。
官方API給的東西很少,只是介紹了一個(gè)實(shí)例方法:

open func setAlternateIconName(_ alternateIconName: String?, completionHandler: ((Error?) -> Swift.Void)? = nil)

根據(jù)傳入的參數(shù)可知,我們只需要傳入備用icon名字即可,然后在回調(diào)里面拿到修改的結(jié)果,成功的話error為空,不成功則返回相應(yīng)的錯(cuò)誤信息(可以使用error!.localizedDescription來(lái)打印查看錯(cuò)誤信息)。如果失敗的話,alternateIconName屬性不變。這里注意:

如果當(dāng)期app使用的icon是備用的icon,那么這個(gè)屬性的值就是當(dāng)前icon的名字,這個(gè)名字是在Info.plist里面設(shè)置的名字,如果當(dāng)前app展示的是主要(primary)的icon,那么這個(gè)值為nil。

這里需要注意兩點(diǎn):

  1. 當(dāng)前設(shè)備的系統(tǒng)版本。這里的所有api都是10.3才能使用的。

  2. 當(dāng)前app是否支持備用icon。使用supportsAlertnateIcons屬性判斷。只有為true的使用才能去更改。
    API中還有一句話比較關(guān)鍵:

    你必須在Info.plist里面使用CFBundleIcons聲明當(dāng)前app的primary和alternate icon。這里如果不了解可以往下看,先忽略。

    具體的I