美文网首页iOS开发者进阶
xcode11bulidversion自增报错的处理(error

xcode11bulidversion自增报错的处理(error

作者: __Mr_Xie__ | 来源:发表于2020-05-07 16:03 被阅读0次

前言

在我们 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开发者进阶,直接留言,留言必回。

相关文章

网友评论

    本文标题:xcode11bulidversion自增报错的处理(error

    本文链接:https://www.haomeiwen.com/subject/tgraghtx.html