大家是否有遇到过测试 app 的时候,想要提 bug 却忘了自己装的是哪个时候打出来的包,版本号一样,icon 一样,打开放测试包的文件夹又有一堆测试包,一时间想不起来到底安装的是哪个包的场景?
又或者有时候覆盖安装不知道自己覆盖安装成功了没有,却没法校验的场景?
如果你们有遇到这些烦恼,那么这篇文章正好能解决你们的问题——在 APP 的 icon 上加上版本信息吧!
# 修改打包图标添加打包信息
# iOS端插入到“xcodebuild”执行之前
# Android端插入到“./gradlew”执行之前
# 判断脚本运行环境是否安装了ImageMagick
convertPath=`which convert`
if [[ ! -f ${convertPath} || -z ${convertPath} ]]; then
echo "==============
WARNING: 你需要先安装 ImageMagick!!!!:
brew install imagemagick
=============="
exit 0
fi
# 基于上下文编写要显示在icon上的信息,支持\n换行
CURRENT_TIME=$(date +"%Y%m%d%H%M")
caption="$CURRENT_TIME\n${CUR_VERSION} \n${BUILD_NUMBER}"
echo "caption: ${caption}"
# 处理图片步骤
function generateIcon() {
originalImg=$1
# 添加散射+高斯模糊
convert ${originalImg} -spread 10 spread-original.png
convert spread-original.png -blur 10x8 blur-original.png
# 截取下部分
width=`identify -format %w ${originalImg}`
height=`identify -format %h ${originalImg}`
height_0=`expr ${height} / 2`
height_1=$((${height} - ${height_0}))
convert blur-original.png -crop ${width}x${height_0}+0+${height_1} crop-blur-original.png
# 加字
point_size=$(((8 * $width) / 58))
convert -background none -fill black -pointsize ${point_size} -gravity center caption:"${caption}" crop-blur-original.png +swap -composite label.png
# 合成
composite -geometry +0+${height_0} label.png ${originalImg} ${originalImg}
# 清除文件
rm blur-original.png
rm crop-blur-original.png
rm label.png
}
# 找到appicon的文件夹,遍历执行icon修改
iconpath="$WORKSPACE/${iconpath}"
for file in ${iconpath}/*
do
if [[ $file == *mipmap* ]]
then
filename="$file/icon.png"
generateIcon $filename
fi
done
# ========= end for =========