🛠

App Debug and Beta Icon

目标

App图标能够带上debug/beta等信息, 让测试/开发人员能够一目了然的区分是哪个版本.

工具

convert

  • 格式转化
convert wulong.jpg wulong.png
  • 大小缩放
convert -resize 100x100 wulong.png thumbnail.jpg

convert -resize 50%x50% wulong.png thumnail.png
  • 加边框
convert -mattecolor "#000000" -frame 60x60 wulong.png wulong-border.png
  • 在图片上加文字
convert -fill green -pointsize 40 -draw 'text 10,50 "I want all girls underwear' wulong.png wulong-underwear.png
  • 高斯模糊
convert -blur 80 wulong.png wulong-blur.png
  • 翻转
convert -flip wulong.png wulong-flip.png # up to down
convert -flop wulong.png wulong-flop.png # left to right
  • 反色
convert -negate wulong.png wulong-negate.png
  • 单色
convert -monochrome wulong.png wulong-monochrome.png
  • 噪声
convert -noise 3 wulong.png wulong-noise.png
  • 油画效果
convert -paint 4 wulong.png wulong-paint.png
  • 旋转
convert -rotate 30 wulong.png wulong-rotate.png
  • 毛玻璃
convert -spread 30 wulong.png wulong-spread.png

composite

图片拼接/合成 (默认是从左上角开始, 所以如果想在Icon上加badge最好将图片convert成大小一致)

composite debug-600.png wulong-rotate.png wulong-debug.png

以上操作结果图片下载地址:

链接:https://pan.baidu.com/s/1m-kMpQa0kuO5UXOCxDE2pA
密码:lpmq

命令

  1. Build Phases 新建一个 Script Phase
  2. 将新建的 Script Phase 拖到 Copy Bundle Resources 上面
  3. 键入代码
IMG_PATH1=$(find ${SRCROOT}/myapp -name "icon-60@2x.png")
IMG_PATH2=$(find ${SRCROOT}/myapp -name "icon-60@3x.png")

echo $IMG_PATH1
echo $IMG_PATH2

if [ "${CONFIGURATION}" == "Debug" ]; then
  cp -f DynamicIcons/debug-icon-60@2x.png $IMG_PATH1
  cp -f DynamicIcons/debug-icon-60@3x.png $IMG_PATH2
fi

if [ "${CONFIGURATION}" == "Release" ]; then
  cp -f DynamicIcons/beta-icon-60@2x.png $IMG_PATH1
  cp -f DynamicIcons/beta-icon-60@3x.png $IMG_PATH2
fi

if [ "${CONFIGURATION}" == "ProRelease" ]; then
  cp -f DynamicIcons/icon-60@2x.png $IMG_PATH1
  cp -f DynamicIcons/icon-60@3x.png $IMG_PATH2
fi

如果只是iPhone上的app, 只需要更改 60-@2x60-@3x 的图标即可, 这两个是iPhone桌面的展示图标.

从iOS11开始, 苹果提供了一种在运行时更换app图标的方法(就像Price Tag可以换图标), 导致之前的方式失效了.

之前的方式是将编译打包好的app里的图标文件修改, 路径为:

TARGET_PATH="${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/${BASE_IMAGE_NAME}"

/Users/FaiChou/Library/Developer/Xcode/DerivedData/myapp-gaiqbxjquskosfdhmhsuetvlybx/Build/Products/Debug-iphoneos/myapp.app/icon-60@3x.png

现在的方法是将要更换的图标放到项目里(放到和 app.xcodeproj 同级下的 DynamicIcons/ 下), 是debug版的两份, beta版的两份, 正式版的两份.

IMG_PATH1=$(find ${SRCROOT}/myapp -name "icon-60@2x.png")

找到 app/Images.xcassets/AppIcon.appiconset/ 下的图片路径.

"${CONFIGURATION}" == "Release"

判断当前编译配置(debug/release/prorelease), debug为开发环境, release为自动打包, prorelease为正式版.

cp -f DynamicIcons/beta-icon-60@2x.png $IMG_PATH1

cp -f 偷天换日.

参考


在我们一生中,命运赐予我们每个人三个导师,三个朋友,三名敌人,三个挚爱。但这十二人总是不以真面目示人,总要等到我们爱上他们、离开他们、或与他们对抗时,才能知道他们是其中哪种角色。