iOS点点滴滴技巧iOS 易混淆的点

将版本信息显示在App图标上

2016-04-10  本文已影响2604人  dimsky

在测试App版本升级功能或者需要多版本切换的时候,可能需要经常去确定当前App的版本号,如果中途打断很有可能会忘记了当前的版本号,并且App内部如果没有显示版本号的功能,就只能从头来了。
如果能让App的版本信息直接显示到图标上,测试的时候是不是就会更加直观,更加效率,更加苏胡。
就像酱紫:

medclipper
怎么做呢?

在Xcode中Target的Build Phases中,可以添加一个Run Script的Build Phase来执行一些脚本做一些操作,这里的脚本会在每次build的时候执行,然后我们就可以通过脚本给App图标添加版本信息了。

Run Script是怎么玩的

添加一个 Run Script


New Run Script

编辑Shell


Test Shell

Command + B 构建工程,可以通过Command + 8 查看构建日志,测试脚本已经成功执行。

Shell result
通过Shell获得应用版本信息

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 图标上

将版本信息填充到图标上,这里需要安装2个工具:ImageMagick和ghostscript,ImageMagicK的convert命令可以将文字写到图片上。

~ brew install imagemagick  
~ brew install ghostscript  

通过convert 将填充版本信息居中显示在图标下方。

~ 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

我们已经把版本信息填充到图标中,但是我们在Run script中执行的Shell需要动态的路径,而且还有不同设备的图标需要填充,最好将工具的安装都可以全自动化,不用着急,现在已经有人替我们完成了这个Shell脚本,我们只需要下载下来,在 Run script 中引入就可以了。

引入添加版本信息脚本

这样你在编译构建的时候在App 图标上就能自动显示版本信息了。

参考:
http://merowing.info/2013/03/overlaying-application-version-on-top-of-your-icon/

上一篇下一篇

猜你喜欢

热点阅读