Xcode使用Run Script脚本

由于某次上线,忘记修改Display Name,铸成大错。
Xcode可以使用脚本,在打包时修改Display Name、Bundle Id等信息。

一、在Build Phases添加脚本

选择Targets->Build Phases->+
Targets->Build Phases->+

Run Script在↓
Run Script
  1. 修改BundleVersion
    1.1 按时间设置Build Number
buildNumber=$(date "+%Y%m%d%H")
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"

1.2 自增长Build Number

plist=${PROJECT_DIR}/${INFOPLIST_FILE}
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${plist}"
  1. 按照Debug-Release设置Display Name和Bundle ID
f [ $CONFIGURATION == Release ]; then
bundleID="com.abc.mobile.YourApp"
displayName="你的App"
else
bundleID="com.abc.develope.mobile.YourApp"
displayName="你的App-测试"
fi
/usr/libexec/Plistbuddy -c "Set :CFBundleIdentifier $bundleID" "${plist}"
/usr/libexec/Plistbuddy -c "Set :CFBundleDisplayName $displayName" "${plist}"
  1. 查看log
    打印log:
echo "$displayName :$bundleID"

查看log

二、在Scheme里添加脚本


Edit Scheme... -> Build -> Pre-actions

在这里写可以不用写判断Debug或Release模式

三、错误
可能会出现错误:


错误一.png

编译前clean一下,就可以解决了。
这是由于PRODUCT_BUNDLE_IDENTIFIER并没有改过来导致的。
所以在打包上传之前,需要clean一下。

参考资料:

  1. Xcode添加RunScript脚本_培根芝士的专栏
  2. Xcode打包,仅archive时通过Run Script脚本进行build号自增

你可能感兴趣的:(Xcode使用Run Script脚本)