在測試App版本升級功能或者需要多版本切換的時候,可能需要經(jīng)常去確定當(dāng)前App的版本號衍菱,如果中途打斷很有可能會忘記了當(dāng)前的版本號赶么,并且App內(nèi)部如果沒有顯示版本號的功能,就只能從頭來了脊串。
如果能讓App的版本信息直接顯示到圖標(biāo)上辫呻,測試的時候是不是就會更加直觀,更加效率琼锋,更加蘇胡放闺。
就像醬紫:
怎么做呢?
在Xcode中Target的Build Phases中缕坎,可以添加一個Run Script的Build Phase來執(zhí)行一些腳本做一些操作怖侦,這里的腳本會在每次build的時候執(zhí)行,然后我們就可以通過腳本給App圖標(biāo)添加版本信息了。
Run Script是怎么玩的
添加一個 Run Script
編輯Shell
Command + B 構(gòu)建工程础钠,可以通過Command + 8 查看構(gòu)建日志恰力,測試腳本已經(jīng)成功執(zhí)行。
通過Shell獲得應(yīng)用版本信息
PlistBuddy
是一個Mac里的命令行下讀寫plist文件的工具旗吁,App的基本信息都存儲在plist 文件中踩萎,我們可以通過PlistBuddy
來獲取。
獲取Version
~ echo `/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" /Users/dimsky/Documents/Project/Project-Info.plist`
1.0.0
獲取Build
~ echo `/usr/libexec/PlistBuddy -c "Print CFBundleVersion" /Users/dimsky/Documents/Project/Project-Info.plist`
1
獲取工程版本信息很钓,如果使用的Git
獲取Branch
~ git rev-parse --abbrev-ref HEAD
master
獲取Commit version
~ git rev-parse --short HEAD
f360b92
將版本信息填充到App 圖標(biāo)上
將版本信息填充到圖標(biāo)上香府,這里需要安裝2個工具:ImageMagick和ghostscript,ImageMagicK的convert命令可以將文字寫到圖片上码倦。
~ brew install imagemagick
~ brew install ghostscript
通過convert 將填充版本信息居中顯示在圖標(biāo)下方企孩。
~ convert -background '#0005' -fill white -gravity center -size 180x60 caption:"1.1.1 (10)\nmaster\n56789998" ./iPhone@3x-1.png +swap -gravity south -composite ./target.png
前后對比:
更完善的Shell
我們已經(jīng)把版本信息填充到圖標(biāo)中,但是我們在Run script中執(zhí)行的Shell需要動態(tài)的路徑袁稽,而且還有不同設(shè)備的圖標(biāo)需要填充勿璃,最好將工具的安裝都可以全自動化,不用著急推汽,現(xiàn)在已經(jīng)有人替我們完成了這個Shell腳本补疑,我們只需要下載下來,在 Run script 中引入就可以了歹撒。
這樣你在編譯構(gòu)建的時候在App 圖標(biāo)上就能自動顯示版本信息了莲组。
參考:
http://merowing.info/2013/03/overlaying-application-version-on-top-of-your-icon/