LLIconVersioning-一個可以建立app版本資訊icon的指令碼

HDB_Li發表於2019-02-28

Github 傳送門

簡介

LLIconVersioning是一個指令碼,可以自動建立帶有除錯資訊的appIcon。在run script中的整合指令碼,可以在每次build或archive時自動建立帶有版本資訊的圖示,還可以自動管理構建號。

預覽

Rendering

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 到你的專案中

  1. 在你的Mac上安裝 ghostscript 和 ImageMagick,你可以通過brew來快速的安裝:brew install imagemagickbrew install ghostscript

  2. 在你的專案中新增一個 New Run Script Phase,並且填寫LLIconVersion.sh的路徑。如果你將 LLIconVersion.sh 放到根目錄下,你可以填寫$SRCROOT/LLIconVersion.sh,如果你將 LLIconVersion.sh 放到某個資料夾下,你需要填寫$SRCROOT/your folder name/LLIconVersion.sh

Rendering

  1. 複製 LLIconVersion.sh到指定目錄。

  2. 在你想要archive或者安裝app給測試前,執行 Build(快捷鍵 : command + B )。原因請檢視Q&A

  3. 執行你的專案看看效果。

  4. 如果你對顏色或者字型不滿意,可以在指令碼中修改這些配置引數。

Rendering

Q&A

Q1 : LLIconVersioningIconOverlaying 有什麼區別?

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時都做了什麼?

  1. 檢查本地資料,判斷是否需要更新圖示。
  2. 檢查是否在Mac上安裝了必要的庫。
  3. 複製appIconappIcon-Debug,將app版本資訊寫到圖片上。
  4. 修改Debug環境裡的 ASSETCATALOG_COMPILER_APPICON_NAME值為appIcon-Debug
  5. 自動修改build number。

Q3 : 為什麼需要在使用前呼叫build?

LLIconVersioning 是動態的修改 project.pbxprojassets,因為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"

Run Error

Build settings 中搜 asset catalog,雙擊並且修改值為appIcon,再執行一次。

Fix Error

Q5 : 為什麼不好使?

檢查你是否安裝了ghostscript/ImageMagick,或者檢視xcode中的除錯資訊,如果你還無法解決問題,開啟一個 issue。

Q6 : 我可以修改哪些引數?

所有可調整的引數都寫在了指令碼檔案的第一和第二部分,你可以閱讀註釋來進行修改。

聯絡

  • 如果你需要幫助,開啟一個issue。
  • 如果你想問一個普遍的問題,開啟一個issue。
  • 如果你發現了一個bug並能提供可靠的複製步驟,開啟一個issue。
  • 如果你有一個功能請求,開啟一個issue。
  • 如果你發現有什麼不對或不喜歡的地方,就開啟一個issue。
  • 如果你有一些好主意或者一些需求,請發郵件(llworkinggroup@qq.com)給我。
  • 如果你想貢獻,提交一個pull request。

聯絡

許可

這段程式碼是根據 MIT license 的條款和條件釋出的。

相關文章