xcode11bulidversion自增报错的处理(error token is "$(CURRENT_PROJECT_VERSION) + 1")

前言

在我们 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

如果你有什么建议,可以关注我,直接留言,留言必回。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。