XCode版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27IFS=$'\n'
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}")
PATH=${PATH}:/usr/local/bin
function generateIcon () {
BASE_IMAGE_NAME=$1
TARGET_PATH="${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/${BASE_IMAGE_NAME}"
echo $TARGET_PATH
echo $SRCROOT
echo $(find ${SRCROOT} -name "AppIcon120x120.png")
BASE_IMAGE_PATH=$(find ${SRCROOT} -name ${BASE_IMAGE_NAME})
WIDTH=$(identify -format %w ${BASE_IMAGE_PATH})
FONT_SIZE=$(echo "$WIDTH * .15" | bc -l)
echo "font size $FONT_SIZE"
# if [ "${CONFIGURATION}" == "Debug" ]; then
# convert debugRibbon.png -resize ${WIDTH}x${WIDTH} resizedRibbon.png
# convert ${BASE_IMAGE_PATH} -fill white -font Times-Bold -pointsize ${FONT_SIZE} -gravity south -annotate 0 "$buildNumber" - | composite resizedRibbon.png - ${TARGET_PATH}
# fi
convert ${BASE_IMAGE_PATH} -fill white -font Times-Bold -pointsize ${FONT_SIZE} -gravity south -annotate 0 "$versionNumber.$buildNumber" - | convert -fill yellow -font Times-Bold -pointsize ${FONT_SIZE} -gravity north -annotate 0 "${CONFIGURATION}" - ${TARGET_PATH}
}
generateIcon "AppIcon60x60@2x.png"
generateIcon "AppIcon60x60@3x.png"Jenkins版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44IFS=$'\n'
CONFIGURATION=Release
PROJECT_ROOT=${WORKSPACE}/${JOB_NAME}
SOURCE_ROOT=${PROJECT_ROOT}/${JOB_NAME}
PLIST_FILE=${SOURCE_ROOT}/Info.plist
APP_ICON_PATH=${SOURCE_ROOT}/Images.xcassets/AppIcon.appiconset
rm -rf ${WORKSPACE}/ipa/*
rm -rf ${WORKSPACE}/app/*
BUNDLE_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$PLIST_FILE")
BUNDLE_SHORT_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$PLIST_FILE")
NORTH_STRING=${CONFIGURATION}_${BUILD_NUMBER}
SOUTH_STRING=${BUNDLE_VERSION}
PATH=${PATH}:/usr/local/bin
function generateIcon () {
IMAGE_NAME=$1
echo "APP_ICON_PATH = $APP_ICON_PATH"
SOURCE_IMAGE_PATH=`find ${PROJECT_ROOT} -name $IMAGE_NAME -depth 1`
echo "SOURCE_IMAGE_PATH = $SOURCE_IMAGE_PATH"
TARGET_IMAGE_PATH=${APP_ICON_PATH}/${IMAGE_NAME}
WIDTH=$(identify -format %w ${SOURCE_IMAGE_PATH})
FONT_SIZE=$(echo "$WIDTH * .15" | bc -l)
echo "width = $WIDTH, font size = $FONT_SIZE"
convert ${SOURCE_IMAGE_PATH} \
-fill black -font Times-Bold -pointsize ${FONT_SIZE} \
-gravity north -annotate +0+10 "${NORTH_STRING}" \
- |
convert -fill white -font Times-Bold -pointsize ${FONT_SIZE} \
-gravity south -annotate 0 "${SOUTH_STRING}" - \
${TARGET_IMAGE_PATH}
}
if [ "${CONFIGURATION}" != "Distribution" ]; then
generateIcon "AppIcon60x60@2x.png"
generateIcon "AppIcon60x60@3x.png"
fi