Create by lexin 2020/04/24
-
来源:
在网上看到最多的是IconOverlaying,在Xcode 9 和 iOS 11之后就失效了,找到一个别人封装好的LLIconVersioning,现在还能使用的脚本,简单做了个小修改,让他在非Release下都执行脚本修改应用AppIcon,不需要在脚本中改动环境
-
原理:
将脚本添加到Run Script, 在 Build的时候会自动运行脚本,在非Release环境下,复制项目的AppIcon,在复制出来的AppIcon上添加应用版本、环境等相关信息,然后修改Build Settting 中 Asset Catalog App Icon Set Name 对应环境对应的图片名称,这样该环境下App就会使用处理后的AppIcon作为图标
- 效果
一、环境安装
通过Homebrew安装 ImageMagick 和 ghostscript,需要依靠这两个工具对图片进行处理
brew install imagemagick
brew install ghostscript
二、脚本参数
## Assets中的appIcon文件名,这个必须跟项目中保持一致
APPICON_NAME="AppIcon"
## Target的序号,第一个target就写0,第二个就写1。
TARGET_INDEX=0
## 是否自动增加build number, "F" 不自增, "T" 自增,例如1增长成2,或者1.0.0增长成1.0.1
AUTO_INCREASE_BUILD_NUMBER="F"
## 右上角Badge参数
ICON_BADGE_BACKGROUND_COLOR="rgba(255,222,111,1.0)"
ICON_BADGE_TEXT_COLOR="rgba(255,255,255,1.0)"
ICON_BADGE_FONT_SIZE=15
ICON_BADGE_HEIGHT=20
## 底部app信息参数
ICON_INFO_TEXT_COLOR="rgba(255,255,255,1.0)"
ICON_INFO_FONT_SIZE=13
ICON_INFO_HEIGHT=35
## 获取app版本号
APP_VERSION=$(/usr/libexec/PlistBuddy -c 'Print CFBundleShortVersionString' "${CONFIGURATION_BUILD_DIR}/${INFOPLIST_PATH}")
## 获取build号
APP_BUILD_NUM=$(/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' "${CONFIGURATION_BUILD_DIR}/${INFOPLIST_PATH}")
## 获取Git分支名
Git_Branch=$(git rev-parse --abbrev-ref HEAD)
## 获取Git提交哈希值
Git_Commit=$(git rev-parse --short HEAD)
## Icon底部显示的文字内容
CAPTION="$APP_VERSION\n($APP_BUILD_NUM)"
## Badge文字
BADGE_CAPTION="$CONFIGURATION"
二、使用
1、将LLIconVersioning.sh脚本文件添加到自己的项目中,放置位置根据自己习惯
-
2、在项目的Build Phases中New Run Script Phase,并且填写LLIconVersion.sh在项目中的路径
如果将 LLIconVersion.sh 放到根目录下,你可以填写SRCROOT/your folder name/LLIconVersion.sh。
3、在想要archive或者安装app到设备前, Build一下(快捷键 : command + B )
4、运行完后Assets.xcassets就会多出一个处理好的AppIcon-Develop,可以打包/运行到设备了
三、注意
图片名称中不要带有空格,会被过滤掉,imagemagick图片工具会找不到图片路径,添加不了信息
删除脚本生成的AppIcon-Debug文件后,需要到Build Settting 中修改回 Asset Catalog App Icon Set Name 对应环境下的名称