前言
在我们 iOS app
打包时,构建版本号是自增的,一般我们都会通过脚本来实现。
升级到 Xcode 11
时,我们会发现以前打包脚本中获取构建版本号的代码:
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
不能正常获取到构建版本号,编译项目的时候,会出现如下错误:
error token is "$(CURRENT_PROJECT_VERSION) + 1"
编译报错原因
在 Xcode11
中,如果你修改了版本号和构建版本号,Xcode
会把 info.plist
文件中的 CFBundleVersion
修改为$(CURRENT_PROJECT_VERSION)
、CFBundleShortVersionString
修改为 $(MARKETING_VERSION)
,这是由于 Xcode11
增加 了 Current Project Version
(构建版本号) 和 Marketing Version
(版本号) 配置,在 build setting
中我们可以找到,截图如下:
解决方案
以下我们把完整的构建版本号自增的脚本代码做一个对比:
-
Xcode 11
之前的完整的构建版本号自增的脚本代码:
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
- 升级到
Xcode 11
时的完整的构建版本号自增的脚本代码:
buildNumber=$CURRENT_PROJECT_VERSION
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
就这样,问题就完美的解决了。
Author
如果你有什么建议,可以关注我,直接留言,留言必回。