引用文章http://www.reibang.com/p/a37e114b7e66
進(jìn)行了更新
-
效果圖
appicon顯示 版本號(hào)(編譯號(hào)).png
啟動(dòng)圖顯示 版本號(hào)(編譯號(hào)).gif
- 安裝ImageMagick
brew install imagemagick
brew 安裝不成功,可以添加鏡像,用阿里云或者清華鏡像,mac新系統(tǒng)中在 .zshrc 文件中添加
# homebrew使用阿里云的鏡像源
#export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles
# homebrew 清華鏡像源
export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
安裝 字體,這個(gè)目前是必須的,如只圖片合成圖片,不需要字體
brew install ghostscript
安裝后驗(yàn)證,必須有字體
identify -list font
字體安裝成功.png
操作步驟參照引用鏈接
icon添加編譯號(hào)腳本更新
#!/bin/bash
echo "? ==========APPicon添加版本號(hào)開(kāi)始=========="
#######################################################
# 1春哨、檢查是否安裝了ImageMagick
#######################################################
echo "?? Checking installed ImageMagick"
convertPath=`which convert`
if [[ ! -f ${convertPath} || -z ${convertPath} ]]; then
convertValidation=true;
else
convertValidation=false;
fi
# 未安裝 提示并退出
if [ "$convertValidation" == true ]; then
echo "? ImageMagick 未安裝,請(qǐng)使用命令安裝\n brew install imagemagick"
exit 0;
else
echo "? ImageMagick 已安裝"
fi
######################################################
# 2. 全局字段
######################################################
echo "??Product Name: ${PRODUCT_NAME}"
echo "??Bundle Identifier: ${BUNDLE_IDENTIFIER}"
echo "??Version: ${MARKETING_VERSION}"
echo "??Build: ${CURRENT_PROJECT_VERSION}"
# Assets中的appIcon文件名
APPICON_NAME="AppIcon"
# Assets中Debug環(huán)境的appIcon文件名
DEBUG_APPICON_NAME="${APPICON_NAME}-Debug"
# # 獲取app版本號(hào)
# APP_VERSION=$(/usr/libexec/PlistBuddy -c 'Print CFBundleShortVersionString' "${INFOPLIST_FILE}")
# # 獲取build號(hào)
# APP_BUILD_NUM=$(/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' "${INFOPLIST_FILE}")
# xcode11 最新寫法
# 獲取app版本號(hào)
APP_VERSION="$MARKETING_VERSION"
# 獲取build號(hào)
APP_BUILD_NUM="$CURRENT_PROJECT_VERSION"
# Icon上顯示的文字內(nèi)容, 你可以在這里修改標(biāo)題格式
CAPTION="$APP_VERSION\n($APP_BUILD_NUM)"
echo "?? DEBUG_APPICON_NAME=$DEBUG_APPICON_NAME"
echo "?? 版本號(hào)=$APP_VERSION"
echo "?? 編譯號(hào)=$APP_BUILD_NUM"
######################################################
# 3. 復(fù)制AppIcon到AppIcon-Debug
######################################################
echo "?? Begin copy icon files"
# appicon路徑
APPICON_SET_PATH=`find $SRCROOT -name "${APPICON_NAME}.appiconset"`
echo "?? APPICON_SET_PATH=$APPICON_SET_PATH"
if [ "$APPICON_SET_PATH" = "" ]; then
exitWithMessage "? Get APPICON_SET_PATH failed." 0
fi
# appicon_debug路徑
ASSET_PATH=`echo $(dirname ${APPICON_SET_PATH})`
DEBUG_APPICON_SET_PATH="${ASSET_PATH}/${DEBUG_APPICON_NAME}.appiconset"
echo "?? DEBUG_APPICON_SET_PATH=$DEBUG_APPICON_SET_PATH"
if [ "$DEBUG_APPICON_SET_PATH" = "" ]; then
exitWithMessage "? Get DEBUG_APPICON_SET_PATH failed." 0
fi
# 刪除appicon_debug里的文件
rm -rf $DEBUG_APPICON_SET_PATH
if [ $? != 0 ];then
exitWithMessage "? Remove ${DEBUG_APPICON_SET_PATH} failed." 0
fi
# 復(fù)制appicon到appicon_debug
cp -rf $APPICON_SET_PATH $DEBUG_APPICON_SET_PATH
if [ $? != 0 ];then
exitWithMessage "? Copy ${APPICON_NAME} to ${DEBUG_APPICON_NAME} failed." 0
fi
echo "? Finish copy icon files."
# # 處理icon,添加水印
# # Processing icon
function processIcon() {
BASE_IMAGE_PATH=$1
echo "BASE_IMAGE_PATH=$BASE_IMAGE_PATH"
BASE_FLODER_PATH=`dirname $BASE_IMAGE_PATH`
cd "$BASE_FLODER_PATH"
# 獲取圖片寬度
WIDTH=$(identify -format %w ${BASE_IMAGE_PATH})
echo "width $WIDTH"
FONT_SIZE=$(echo "$WIDTH * .15" | bc -l)
echo "font size $FONT_SIZE"
convert ${BASE_IMAGE_PATH} -font Helvetica -pointsize ${FONT_SIZE} \
-draw "gravity south \
fill white text 0,12 '$APP_VERSION($APP_BUILD_NUM)'" \
${BASE_IMAGE_PATH}
}
#######################################################
# 4. 處理AppIcon-Debug
#######################################################
find "$DEBUG_APPICON_SET_PATH" -type f -name "*.png" -print0 |
while IFS= read -r -d '' file; do
echo "???? ${file}"
# 調(diào)用 processIcon 方法
processIcon "${file}"
done
echo "? ==========APPicon添加版本號(hào)結(jié)束=========="
- 同理,在啟動(dòng)圖添加編譯號(hào),使用LaunchScreen.storyboard,區(qū)別就是圖片文件夾的后綴
#!/bin/bash
echo "? ==========啟動(dòng)圖添加版本號(hào)開(kāi)始=========="
#######################################################
# 1鲫忍、檢查是否安裝了ImageMagick
#######################################################
echo "?? Checking installed ImageMagick"
convertPath=`which convert`
if [[ ! -f ${convertPath} || -z ${convertPath} ]]; then
convertValidation=true;
else
convertValidation=false;
fi
# 未安裝 提示并退出
if [ "$convertValidation" == true ]; then
echo "? ImageMagick 未安裝,請(qǐng)使用命令安裝\n brew install imagemagick"
exit 0;
else
echo "? ImageMagick 已安裝"
fi
######################################################
# 2. 全局字段
######################################################
echo "??Product Name: ${PRODUCT_NAME}"
echo "??Bundle Identifier: ${BUNDLE_IDENTIFIER}"
echo "??Version: ${MARKETING_VERSION}"
echo "??Build: ${CURRENT_PROJECT_VERSION}"
# Assets中的appIcon文件名
IMAGE_NAME="launch_image"
# Assets中Debug環(huán)境的appIcon文件名
BUNDLE_IMAGE_NAME="${IMAGE_NAME}-Build"
# # 獲取app版本號(hào)
# APP_VERSION=$(/usr/libexec/PlistBuddy -c 'Print CFBundleShortVersionString' "${INFOPLIST_FILE}")
# # 獲取build號(hào)
# APP_BUILD_NUM=$(/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' "${INFOPLIST_FILE}")
# xcode11 最新寫法
# 獲取app版本號(hào)
APP_VERSION="$MARKETING_VERSION"
# 獲取build號(hào)
APP_BUILD_NUM="$CURRENT_PROJECT_VERSION"
# Icon上顯示的文字內(nèi)容, 你可以在這里修改標(biāo)題格式
CAPTION="$APP_VERSION\n($APP_BUILD_NUM)"
echo "?? BUNDLE_IMAGE_NAME=$BUNDLE_IMAGE_NAME"
echo "?? 版本號(hào)=$APP_VERSION"
echo "?? 編譯號(hào)=$APP_BUILD_NUM"
######################################################
# 3. 復(fù)制AppIcon到AppIcon-Debug
######################################################
echo "?? Begin copy icon files"
# appicon路徑 .imageset 后綴
APPICON_SET_PATH=`find $SRCROOT -name "${IMAGE_NAME}.imageset"`
echo "?? APPICON_SET_PATH=$APPICON_SET_PATH"
if [ "$APPICON_SET_PATH" = "" ]; then
exitWithMessage "? Get APPICON_SET_PATH failed." 0
fi
# appicon_debug路徑 .imageset 后綴
ASSET_PATH=`echo $(dirname ${APPICON_SET_PATH})`
DEBUG_APPICON_SET_PATH="${ASSET_PATH}/${BUNDLE_IMAGE_NAME}.imageset"
echo "?? DEBUG_APPICON_SET_PATH=$DEBUG_APPICON_SET_PATH"
if [ "$DEBUG_APPICON_SET_PATH" = "" ]; then
exitWithMessage "? Get DEBUG_APPICON_SET_PATH failed." 0
fi
# 刪除appicon_debug里的文件
rm -rf $DEBUG_APPICON_SET_PATH
if [ $? != 0 ];then
exitWithMessage "? Remove ${DEBUG_APPICON_SET_PATH} failed." 0
fi
# 復(fù)制appicon到appicon_debug
cp -rf $APPICON_SET_PATH $DEBUG_APPICON_SET_PATH
if [ $? != 0 ];then
exitWithMessage "? Copy ${IMAGE_NAME} to ${BUNDLE_IMAGE_NAME} failed." 0
fi
echo "? Finish copy icon files."
# # 處理icon,添加水印
# # Processing icon
function processIcon() {
BASE_IMAGE_PATH=$1
echo "BASE_IMAGE_PATH=$BASE_IMAGE_PATH"
BASE_FLODER_PATH=`dirname $BASE_IMAGE_PATH`
cd "$BASE_FLODER_PATH"
# 獲取圖片寬度
WIDTH=$(identify -format %w ${BASE_IMAGE_PATH})
echo "width $WIDTH"
FONT_SIZE=$(echo "$WIDTH * .15" | bc -l)
echo "font size $FONT_SIZE"
convert ${BASE_IMAGE_PATH} -font Helvetica -pointsize ${FONT_SIZE} \
-draw "gravity south \
fill white text 0,12 '$APP_VERSION($APP_BUILD_NUM)'" \
${BASE_IMAGE_PATH}
}
#######################################################
# 4. 處理AppIcon-Debug
#######################################################
find "$DEBUG_APPICON_SET_PATH" -type f -name "*.png" -print0 |
while IFS= read -r -d '' file; do
echo "???? ${file}"
# 調(diào)用 processIcon 方法
processIcon "${file}"
done
echo "? ==========啟動(dòng)圖添加版本號(hào)結(jié)束=========="