xcode11bulidversion自增報(bào)錯(cuò)的處理(error token is "$(CURRENT_PROJECT_VERSION) + 1")

前言

在我們 iOS app 打包時(shí),構(gòu)建版本號(hào)是自增的,一般我們都會(huì)通過(guò)腳本來(lái)實(shí)現(xiàn)。
升級(jí)到 Xcode 11 時(shí),我們會(huì)發(fā)現(xiàn)以前打包腳本中獲取構(gòu)建版本號(hào)的代碼:

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))

不能正常獲取到構(gòu)建版本號(hào),編譯項(xiàng)目的時(shí)候,會(huì)出現(xiàn)如下錯(cuò)誤:
error token is "$(CURRENT_PROJECT_VERSION) + 1"

錯(cuò)誤截圖

編譯報(bào)錯(cuò)原因

Xcode11 中,如果你修改了版本號(hào)和構(gòu)建版本號(hào),Xcode 會(huì)把 info.plist文件中的 CFBundleVersion 修改為$(CURRENT_PROJECT_VERSION)、CFBundleShortVersionString 修改為 $(MARKETING_VERSION),這是由于 Xcode11 增加 了 Current Project Version (構(gòu)建版本號(hào)) 和 Marketing Version(版本號(hào)) 配置,在 build setting 中我們可以找到,截圖如下:

解決方案

以下我們把完整的構(gòu)建版本號(hào)自增的腳本代碼做一個(gè)對(duì)比:

  • Xcode 11 之前的完整的構(gòu)建版本號(hào)自增的腳本代碼:
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")

buildNumber=$(($buildNumber + 1))

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
  • 升級(jí)到 Xcode 11 時(shí)的完整的構(gòu)建版本號(hào)自增的腳本代碼:
buildNumber=$CURRENT_PROJECT_VERSION

buildNumber=$(($buildNumber + 1))

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"

就這樣,問(wèn)題就完美的解決了。

Author

如果你有什么建議,可以關(guān)注我,直接留言,留言必回。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容