xcode11bulidversion自增报错的处理(error
2020-05-07 本文已影响0人
__Mr_Xie__
前言
在我们 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
如果你有什么建议,可以关注我的公众号:iOS开发者进阶,直接留言,留言必回。