我设法重现了构建阶段脚本from this SO question,每次构建应用程序时都会增加构建号。任何人都可以建议如果我希望构建号为version.build
,脚本应该是什么样子,即如果我的应用版本是0.2,我希望我的内部版本号设置为0.2.001,0.2.002然后,当我将构建号更改为0.3时,我希望构建重新启动到001,所以我得到0.3.001,0.3.002等。
这是我目前的剧本:
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
更新
我要做的是以下内容:
不幸的是,我对bash脚本没有任何了解,所以如果有人能提供脚本,我将不胜感激。
答案 0 :(得分:-1)
#!/bin/bash
# get the configuration
conf=${CONFIGURATION}
# only change build number if we are building for Release or AdHoc!
if [ $conf == Release ] || [ $conf == AdHoc ]; then
# get the build number
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
echo "Old Build number $buildNumber"
# split it by dots
arrIN=(${buildNumber//\./ })
# get the last element position
lastElementPosition=$((${#arrIN[@]} - 1))
# get the minor version from the last array element
minorVersion=${arrIN[${lastElementPosition}]}
# Increase it by 1
minorVersion=$((minorVersion+1))
# Format it as 3 digit
minorVersion=`printf "%03d" $minorVersion`
echo "New minor version $minorVersion"
# Update it on the array
arrIN[$lastElementPosition]=$minorVersion
# construct the build number now by joining the array
buildNumber=$(IFS=. ; echo "${arrIN[*]}")
echo "New Build number $buildNumber"
#update it in plist
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
fi
这是您想要的脚本。 一切都在代码中解释,所以你应该看看我在做什么
上述脚本中使用的bash函数的引用:
从https://stackoverflow.com/a/5257398/312312
分割字符串 的数组