由于某次上線,忘記修改Display Name,鑄成大錯。
Xcode可以使用腳本,在打包時修改Display Name、Bundle Id等信息。
一、在Build Phases添加腳本

Targets->Build Phases->+
Run Script在↓

Run Script
- 修改BundleVersion
1.1 按時間設(shè)置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}"
- 按照Debug-Release設(shè)置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}"
- 查看log
打印log:
echo "$displayName :$bundleID"
查看log
二、在Scheme里添加腳本

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

在這里寫可以不用寫判斷Debug或Release模式
三、錯誤
可能會出現(xiàn)錯誤:

錯誤一.png
編譯前clean一下,就可以解決了。
這是由于PRODUCT_BUNDLE_IDENTIFIER并沒有改過來導(dǎo)致的。
所以在打包上傳之前,需要clean一下。
參考資料: