給iOS應用的Logo加上構建信息水印

1 前言:

之前,翻博客看到別人的 app 在 debug 時,應用圖標上面顯示 git 分支和提交記錄,挺好奇,因爲不知道搜索關鍵詞,最後沒搜到方案. 每次測試同事在持續集成後測試時,分不清構建的版本是不是想要的,不少時候要和開發者溝通,定位問題版本也不及時.可能浪費你們精力,拖慢工程進度.git

2 方案:

最近,恰好看到小魚周凌宇的博客,有這個解決方案. 主要解決思路是在 build app工程之後,執行一個shell腳本,經過ImageMagick(圖片處理工具)將 AppIcon 修改爲本身想要的 icon, 替換原來的 icon. 小魚周凌宇的教程寫的很詳細.本覺得按照教程,直接 build, 而後順利獲得結果. But...shell 執行失敗. 錯誤提示:github

error: CgBI: unhandled critical chunk AppIcon20x20@2x.png
複製代碼

錯誤提示大概就是:不能處理 AppIcon20x20@2x.png. 接下來就是排查錯誤: ①.排除不是ImageMagick的問題. 在其餘目錄下ImageMagick裁剪處理jpg,png 等其餘格式的圖片都沒有問題. ②.定位是 Xcode 構建項目時,修改了 png 圖片. 在終端進入項目構建好的文件(路徑: /Users/(username)/Library/Developer/Xcode/DerivedData/YourApp-gduslbgdmwwzedausnprzxmwoppu(隨機字母)/Build/Products/Debug-iphoneos/YourApp.app/ )下,用ImageMagick修改圖片,發現修改 jpg 沒有問題,修改 png 就會報錯.shell

#一樣的錯誤提示:
error: CgBI: unhandled critical chunk test01.png
複製代碼

用 google 搜索 "Xcode 9.1 convert: CgBI: unhandled critical chunk" 相似這樣的關鍵詞,能夠看到 Stack Overflow 上有相似的問題: libpng error: CgBI: unhandled critical chunk xcode 7.3 緣由大意就是:在 Xcode 7.3之後,在 Xcode build 項目時,默認會把 png 壓縮 和 修改.而後獲得新的png圖片,ImageMagick 在修改是會遇到上述的問題.xcode

3 修改:

既然問題找到了,接下來是就是修改步驟:(只在 Debug 模式下,修改)bash

YourProjectName => PROJECT => 選中項目 => build setting => Compress Png Files => Debug 的屬性由 No 改成 Yes.
YourProjectName => PROJECT => 選中項目 => build setting => Remove Text Metadata From Png Files => Debug 的屬性由 No 改成 Yes.
複製代碼

接着, clean 項目,從新運行,編譯成功. app

修改前AppIcon.png
修改後AppIcon.png

點擊查看詳細操做步驟:

shell 腳本在小魚周凌宇分享的腳本上作了小小的修改,修改了水印高度,增長了構建時間.1表明 build number, dev 表明 git 分支名字,50f51a8表明 git 最後一次提交記錄的短hash值. 若是想要更強大的功能,能夠關注 Bootstrap 這個庫.iphone

最後,感謝你們的分享.工具

相關文章
相關標籤/搜索