自动增加内部版本号xcode?

时间:2012-09-11 12:42:36

标签: iphone xcode

我想在这里实现答案:

Better way of incrementing build number?

但无法让它正常工作。它失败了,错误2说“没有plist中的内部版本号”

但是如果我在我的plist中放置一个内部版本号,那么脚本会在下一个版本中清除它,然后同样的事情会再次发生。

有什么想法吗?

3 个答案:

答案 0 :(得分:24)

以下是我增加内部版本号的方法:

在目标>摘要选项卡,设置初始构建# enter image description here

然后使用此脚本增加内部版本号:

#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%04d" $buildNumber)
/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 "%04X" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"

答案 1 :(得分:2)

我的解决方案如下:

#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(echo $buildNumber | sed 's/0*//')
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%04d" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"

使用sed删除前导零,递增值并使用四位数填零的数字将其打印在plist文件中。

答案 2 :(得分:0)

如果你使用Jenkins,你可以使用Jenkins内部版本号

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$INFOPLIST_FILE";