我正在使用Xcode 4.3,我已经按照该用户的步骤创建了脚本:
XCode 中的版本与内部版本
无论出于何种原因,我看起来都不能在那里发表评论。由于 StackOverlow 中的答案区域不是论坛/讨论,我有点被迫根据该答案提出问题。
在第 7 步中,他引用了 2 种递增构建版本的方法:数字和十六进制数字
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
和
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$((0x$buildNumber))
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%X" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
两者都返回完全相同的外壳错误:
syntax error: invalid arithmetic operator (error token is ".0")
command /bin/sh failed with exit code 1
我去了摘要选项卡,版本和构建都是 1.0。如果我将其更改为"1",则错误为"第 4 行 1 + 1:语法错误:无效的算术运算符(错误标记为" + 1")
我做错了什么,我能做些什么来解决这个问题?
您的内部版本号具有浮点值,因此请将代码更改为
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=`echo $buildNumber +1|bc`
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
正如这篇 SO 帖子中所建议的那样。