给 iOS App的图标Icon 加上自定义信息

这里的自定义信息在本文中使用了 CONFIGURATION 和版本号

使用前提条件

  1. 将 xcode 中的 AppIcon 的文件拷贝到工程根目录下,文件名不要修改,或者在脚本中根据具体情况修改代码,但是完全没必要
  2. 使用脚本后,xcode 工程的中的 AppIcon 会发生修改,需要注意 git 库中如果有更新的话,需要手动更新
  3. 需要安装 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"

你可能感兴趣的:(给 iOS App的图标Icon 加上自定义信息)