最近读到一篇文章(
http://www.merowing.info/2013/03/overlaying-application-version-on-top-of-your-icon/)介绍了一种非常简单的,把版本信息显示到iOS app的icon上的方式, 有了这个技能,在测试多版本的时候,测试人员可以直接从icon上看到当前测试的版本,无需在到HockeyApp或者TestFlight中去看哪些机器使用的哪个版本,可以提升效率。
下面是我如何Get这个技能的:
首先,获取想展示到图标上的信息,在我的app中,我想展示version,branch,commit信息,即当前测试的App是哪个分支上得哪个版本,在哪次提交之后build的. 这些信息最后是通过shell脚本弄上去的,因此,只要shell脚本能读取到这些信息就成。对于iOS App来说,Version信息来源于项目的.plist文件,在Mac上提供了PlistBuddy工具来帮助开发者提取plist中的所有信息:
version = `/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "骚窝对对碰-info.plist"` #1.0
至于branch和commit信息则是根据Version control工具来定的,我使用的是git:
branch=`git rev-parse --abbrev-ref HEAD`
commit=`git rev-parse --short HEAD`
接着,有了想写到icon的信息,接下来是如何写到icon上,这儿的工具是ImageMagick和ghostscript,ImageMagick为在命令行下操作图片提供了很多的功能,而ghostscript则是为了在icon上写的字体好看一点。在Mac下有了homebrew安装什么都很方便:
brew install imagemagick
brew install ghostscript
安装好后,通过ImageMagicK的convert功能把文字写到图片上,示例:在Icon.png上,创建一个背景色为‘#0008’的,长144,高40的矩形,然后用白色字体把把“test master 56789998”居中写到矩形中。
convert -background '#0008' -fill white -gravity center -size 144x40 caption:"test master 56789998" ./Icon.png +swap -gravity south -composite ./convert.png
转换后的前后对比如下:
最后,有了要写的信息和如何写的方式,接下来,就是在Xcode中完成配置,把该功能加入到iOS App的构建过程中。
1.把所有的Icon文件改为*_base.png, 因为最后的Icon文件是由脚本生成,因此需把当前Icon改名以防冲突。
2.在Target的Build Phases中添加一个Run Script的Build Phase, 怎么做:http://www.runscriptbuildphase.com/
3.把前面的图片处理过程,添加到Run Script中:
commit=`git rev-parse --short HEAD`
branch=`git rev-parse --abbrev-ref HEAD`
version=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}"`
function processIcon() {
export PATH=$PATH:/usr/local/bin
base_file=$1
base_path=`find ${SRCROOT} -name $base_file`
if [[ ! -f ${base_path} || -z ${base_path} ]]; then
return;
fi
target_file=`echo $base_file | sed "s/_base//"`
target_path="${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/${target_file}"
if [ $CONFIGURATION = "Release" ]; then
cp ${base_file} $target_path
return
fi
width=`identify -format %w ${base_path}`
convert -background '#0008' -fill white -gravity center -size ${width}x40\
caption:"${version} ${branch} ${commit}"\
${base_path} +swap -gravity south -composite ${target_path}
}
processIcon "Icon_base.png"
processIcon "Icon@2x_base.png"
processIcon "Icon-72_base.png"
processIcon "Icon-72@2x_base.png"
最后,在我的Simiulatro上得到的效果:
- 大小: 282.5 KB
- 大小: 51.8 KB
- 大小: 33 KB
- 大小: 33 KB
分享到:
相关推荐
适用于iOS系统的App图标输出模板,只需要制作一张 512*512尺寸的图标,借助文件夹中的psd文件并导入附带的ps脚本即可完成多种尺寸的图标输出,一步到位 省去制作多个不同尺寸图标的麻烦。 操作步骤 1 在ps中导入...
iOS App图标和启动画面尺寸 注意:iOS所有图标的圆角效果由系统生成,给到的图标本身不能是圆角的。 1. 桌面图标 (app icon) for iPhone6 plus(@3x) : 180 x 180 for iPhone 6/5s/5/4s/4(@2x) : 120 x ...
GitHub地址:https://github.com/MrLujh/AppIconVersion
高清Android,ios App图标,以及全套天气图标
iOS的app上下黑边问题在项目中添加三张图片可以解决问题
macOS 和 iOS 的图标AppIcon生成器
七夕送什么? 做程序员的就在程序上想了想办法. 做了一个app打开在按home 键之后. app 的图标就变一次. 那么这样就可以用这个app的icon来做一些事情了. 比如: 某某某,我爱你.
python appicon.py ./src.png 第一次运行可能会需要安装Image组件,可能会要权限不足。所以第一次运行最好加一个sudo python appicon.py ./src.png 生成的文件夹AppIcon.appiconset直接替换掉项目中Assets.xcassets...
2.智能提取APP应用信息,自动生成IOS应用PLIST,开发信息,方便用户在测试。 3.支持阿里云和七牛云存储绑定。 充值点数比例固定默认比例是一比一百点。 对接码支付版的分发系统,修复官方后门与修复数据库被删除的...
源码ios-icon-generator,ios-icon-generator是一个iOS APP图标快速生成工具,可以生成iPhone和iPad所需的所有图标。srcfile - 源png文件。 分辨率最好在 1024x1024以上。 dstpath - 存放生成图标的目标文件夹。 ...
【IOS苹果免签分发】苹果IOS绿标免签封装app隐藏顶部网址ios14不显示顶部网址跳转设置.rar
Xcode-iOS10.3新特性如何动态修改APP图标 详细说明: http://blog.csdn.net/u014220518/article/details/70144075
iOS 14 App 图标模板 及展示效果 .sketch素材下载
为帮助广大程序员解决制作图标模板的问题,国外网站appicontemplate提供了一套psd文件下载,其中包含不同尺寸,针对不同屏幕分辨率的iPhone和iPad图标模板,当然也包括针对Retina显示屏的icon。...
获取上线的iOS平台的app的图片
动态修改appIcon图标
该软件的图标库实例丰富,能够生成不同风格、不同像素的图标,绝对能够满足你开发app所需。
一个类似iphone主界面(spring board)的功能,多个图标的布局,能横向滑动,识别单个图标的点击事件。xcode4.0.1的工程文件
App图标制作工具For Mac。ios和mac应用程序图标制作,根据png图片制作App可识别的图标。很实用的哦