在測試App版本升級功能或者需要多版本切換的時(shí)候,可能需要經(jīng)常去確定當(dāng)前App的版本號,如果中途打斷很有可能會忘記了當(dāng)前的版本號,并且App內(nèi)部如果沒有顯示版本號的功能,就只能從頭來了。
如果能讓App的版本信息直接顯示到圖標(biāo)上,測試的時(shí)候是不是就會更加直觀,更加效率,更加蘇胡。
就像醬紫:
怎么做呢?
在Xcode中Target的Build Phases中,可以添加一個(gè)Run Script的Build Phase來執(zhí)行一些腳本做一些操作,這里的腳本會在每次build的時(shí)候執(zhí)行,然后我們就可以通過腳本給App圖標(biāo)添加版本信息了。
Run Script是怎么玩的
添加一個(gè) Run Script
編輯Shell
Command + B 構(gòu)建工程,可以通過Command + 8 查看構(gòu)建日志,測試腳本已經(jīng)成功執(zhí)行。
通過Shell獲得應(yīng)用版本信息
PlistBuddy
是一個(gè)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個(gè)工具: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需要?jiǎng)討B(tài)的路徑,而且還有不同設(shè)備的圖標(biāo)需要填充,最好將工具的安裝都可以全自動(dòng)化,不用著急,現(xiàn)在已經(jīng)有人替我們完成了這個(gè)Shell腳本,我們只需要下載下來,在 Run script 中引入就可以了。
這樣你在編譯構(gòu)建的時(shí)候在App 圖標(biāo)上就能自動(dòng)顯示版本信息了。
參考:
http://merowing.info/2013/03/overlaying-application-version-on-top-of-your-icon/