LLIconVersioning是一個腳本,能夠自動建立帶有調試信息的appIcon。在run script中的集成腳本,能夠在每次build或archive時自動建立帶有版本信息的圖標,還能夠自動管理構建號。ios
1.0.0
is app version, 9
is build number, Debug
is environment name.git
這是一個能夠幫助你管理圖標的腳本,你能夠更容易地看到應用程序版本信息。github
而且它也能夠自動管理build number,例如1
增加成2
,或者1.0.0
增加成1.0.1
,或者使用日期來設置你的build number,例如201808311200
。xcode
在你的Mac上安裝 ghostscript 和 ImageMagick,你能夠經過brew來快速的安裝:brew install imagemagick
和 brew install ghostscript
。app
在你的項目中新增一個 New Run Script Phase
,而且填寫LLIconVersion.sh
的路徑。若是你將 LLIconVersion.sh
放到根目錄下,你能夠填寫$SRCROOT/LLIconVersion.sh
,若是你將 LLIconVersion.sh
放到某個文件夾下,你須要填寫$SRCROOT/your folder name/LLIconVersion.sh
。測試
複製 LLIconVersion.sh
到指定目錄。字體
在你想要archive或者安裝app給測試前,運行 Build
(快捷鍵 : command + B
)。緣由請查看Q&A。ui
運行你的項目看看效果。debug
若是你對顏色或者字體不滿意,能夠在腳本中修改這些配置參數。調試
LLIconVersioning
和 IconOverlaying
有什麼區別?LLIconVersioning
是根據 IconOverlaying
修改的, 可是 IconOverlaying
已經再也不支持 Xcode 9 and iOS 11。
雖然 LLIconVersioning
是根據 IconOverlaying
修改的,可是中心思想是不同的。
LLIconVersioning
是修改你的project.pbxproj
,而後將Debug環境的ASSETCATALOG_COMPILER_APPICON_NAME
的值從appIcon
設置成appIcon-Debug
,這意味着你的app會使用 appIcon-Debug
來建立debug環境的圖標,使用appIcon
建立release環境的圖標。
IconOverlaying
是在archive後修改你的ipa
,他會修改.ipa
中的png文件,可是ios11的app已經不在使用ipa
中的png文件,而是直接使用assets中的appIcon
來建立圖標。
LLIconVersioning
在build時都作了什麼?appIcon
到 appIcon-Debug
,將app版本信息寫到圖片上。ASSETCATALOG_COMPILER_APPICON_NAME
值爲appIcon-Debug
。build
?LLIconVersioning
是動態的修改 project.pbxproj
和 assets
,由於run script只能在ipa
生成後調用,因此腳本沒法修改當前的ipa
中的assets
資源,build
至關於運行腳本去建立下一次ipa
的數據,因此你在archive或者給測試安裝app前,須要先build一下。
當你手動刪除assets
中的appIcon-Debug
時,你會收到一個這樣的錯誤None of the input catalogs contained a matching stickers icon set or app icon set named "AppIcon-Debug"
。
在 Build settings
中搜 asset catalog
,雙擊而且修改值爲appIcon
,再運行一次。
檢查你是否安裝了ghostscript/ImageMagick,或者查看xcode中的調試信息,若是你還沒法解決問題,打開一個 issue。
全部可調整的參數都寫在了腳本文件的第一和第二部分,你能夠閱讀註釋來進行修改。
這段代碼是根據 MIT license 的條款和條件發佈的。