这里的自定义信息在本文中使用了 CONFIGURATION 和版本号
使用前提条件
- 将 xcode 中的 AppIcon 的文件拷贝到工程根目录下,文件名不要修改,或者在脚本中根据具体情况修改代码,但是完全没必要
- 使用脚本后,xcode 工程的中的 AppIcon 会发生修改,需要注意 git 库中如果有更新的话,需要手动更新
- 需要安装 imagemagick 这个第三方工具
PS
使用之前直接修改打包后的.app文件中的图标文件,发现安装后还是修改前的,所以才采用了这种方法
脚本
#!/bin/sh
IFS=$'\n'
PATH=${PATH}:/usr/local/bin
function setup() {
# APP 图标在工程中的路径;这个路径可能会因 xcode 版本不同而不同
AppIconPath=$SRCROOT/$PROJECT_NAME/Assets.xcassets/AppIcon.appiconset
# TARGET_BASE_PATH=${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}
SRC_IMAGE_DIR=${SRCROOT}
DST_IMAGE_DIR=${AppIconPath}
INFOPLIST_FILE_PATH=${PROJECT_DIR}/${INFOPLIST_FILE}
VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE_PATH")
}
function generateIcon () {
echo "--- start to generate icon ..."
SRC_IMAGE_NAME=$1
DST_IMAGE_NAME=$1
TMP_SRC_IMAGE_PATH=${SRC_IMAGE_DIR}/${SRC_IMAGE_NAME}
if [[ ! -f $TMP_SRC_IMAGE_PATH ]]; then
echo "src image [$SRC_IMAGE_NAME] not exist in $SRC_IMAGE_DIR"
return 1
fi
SRC_IMAGE_PATH="${SRC_IMAGE_DIR}/${SRC_IMAGE_NAME}"
DST_IMAGE_PATH="${DST_IMAGE_DIR}/${DST_IMAGE_NAME}"
echo "SRC_IMAGE_PATH = $SRC_IMAGE_PATH"
echo "DST_IMAGE_PATH = $DST_IMAGE_PATH"
WIDTH=$(identify -format %w ${SRC_IMAGE_PATH})
FONT_SIZE=$(echo "$WIDTH * .15" | bc -l)
DATE_STRING=`date "+%m-%d %H:%M:%S"`
echo "font size $FONT_SIZE"
echo "CONFIGURATION = $CONFIGURATION"
echo "VERSION = $VERSION"
echo "DATE_STRING = $DATE_STRING"
convert ${SRC_IMAGE_PATH} -fill black -pointsize ${FONT_SIZE} -gravity north -annotate 0 "${CONFIGURATION}" ${DST_IMAGE_PATH}
convert ${DST_IMAGE_PATH} -fill black -pointsize ${FONT_SIZE} -gravity center -annotate 0 "$VERSION" ${DST_IMAGE_PATH}
convert ${DST_IMAGE_PATH} -fill black -pointsize ${FONT_SIZE} -gravity south -annotate 0 "$DATE_STRING" ${DST_IMAGE_PATH}
res=$?
if [[ $res == 0 ]]; then
echo "--- success to generate icon ..."
else
echo "--- failed to generate icon ..."
fi
}
setup
# 这个文件名就是 xcode 中设置的 AppIcon 的文件名
generateIcon "120x120-1.png"
generateIcon "180x180.png"
网友评论