在APP包的icon上展示打包的版本信息

適用場景

大家是否有遇到過測試app的時候,想要提bug卻忘了自己裝的是哪個時候打出來的包,版本號一樣,icon一樣,打開放測試包的文件夾又有一堆測試包,一時間想不起來到底安裝的是哪個包的場景?

又或者有時候覆蓋安裝不知道自己覆蓋安裝成功了沒有,卻沒法校驗的場景?

如果你們有遇到這些煩惱,那么這篇文章正好能解決你們的問題——在APP的icon上加上版本信息吧!


實現效果圖

實現思路

  • 通過ImageMagick實現icon圖片的處理,編寫icon處理腳本
  • 在構建之前加入app的icon的預處理腳本即可
  • 目前我們的測試app都是通過jenkins來打包的,只要在jenkins配置的腳本中,在構建那一步之前插入以下腳本即可(以下腳本運行環境為Mac OS)。

具體腳本實現

# 修改打包圖標添加打包信息
# 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 =========

參考資料

iOS——寫一個快速定位問題的腳本

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容