Github 傳送門
簡介
LLIconVersioning是一個指令碼,可以自動建立帶有除錯資訊的appIcon。在run script中的整合指令碼,可以在每次build或archive時自動建立帶有版本資訊的圖示,還可以自動管理構建號。
預覽
1.0.0
is app version, 9
is build number, Debug
is environment name.
我能用 LLIconVersioning 做什麼?
這是一個可以幫助你管理圖示的指令碼,你可以更容易地看到應用程式版本資訊。
並且它也可以自動管理build number,例如1
增長成2
,或者1.0.0
增長成1.0.1
,或者使用日期來設定你的build number,例如201808311200
。
新增 LLIconVersioning 到你的專案中
-
在你的Mac上安裝 ghostscript 和 ImageMagick,你可以通過brew來快速的安裝:
brew install imagemagick
和brew install ghostscript
。 -
在你的專案中新增一個
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。 -
執行你的專案看看效果。
-
如果你對顏色或者字型不滿意,可以在指令碼中修改這些配置引數。
Q&A
Q1 : 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
來建立圖示。
Q2 : LLIconVersioning
在build時都做了什麼?
- 檢查本地資料,判斷是否需要更新圖示。
- 檢查是否在Mac上安裝了必要的庫。
- 複製
appIcon
到appIcon-Debug
,將app版本資訊寫到圖片上。 - 修改Debug環境裡的
ASSETCATALOG_COMPILER_APPICON_NAME
值為appIcon-Debug
。 - 自動修改build number。
Q3 : 為什麼需要在使用前呼叫build
?
LLIconVersioning
是動態的修改 project.pbxproj
和 assets
,因為run script只能在ipa
生成後呼叫,所以指令碼無法修改當前的ipa
中的assets
資源,build
相當於執行指令碼去建立下一次ipa
的資料,所以你在archive或者給測試安裝app前,需要先build一下。
Q4 : 為什麼會收到這樣的錯誤?
當你手動刪除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
,再執行一次。
Q5 : 為什麼不好使?
檢查你是否安裝了ghostscript/ImageMagick,或者檢視xcode中的除錯資訊,如果你還無法解決問題,開啟一個 issue。
Q6 : 我可以修改哪些引數?
所有可調整的引數都寫在了指令碼檔案的第一和第二部分,你可以閱讀註釋來進行修改。
聯絡
- 如果你需要幫助,開啟一個issue。
- 如果你想問一個普遍的問題,開啟一個issue。
- 如果你發現了一個bug,並能提供可靠的複製步驟,開啟一個issue。
- 如果你有一個功能請求,開啟一個issue。
- 如果你發現有什麼不對或不喜歡的地方,就開啟一個issue。
- 如果你有一些好主意或者一些需求,請發郵件(llworkinggroup@qq.com)給我。
- 如果你想貢獻,提交一個pull request。
聯絡
- 可以發郵件到llworkinggroup1992@gmail.com
- 可以在twitter中@HdbLi發私信給我。
- 可以在簡書中發私信給我。
許可
這段程式碼是根據 MIT license 的條款和條件釋出的。