我将Azure Devops yaml管道用于iOS应用程序的生成过程。在运行时,我想在info.plist文件中的每次构建后自动增加CFBundle版本号。
例如:版本从0.0.1-> 0.0.99-> 0.1.0-> 0.1.99-> 0.2.0-> ............-> 0.99.99-> 1.0开始.0
关于不使用任何第三方扩展程序如何实现此目标的任何建议?谢谢!
您可以通过script
在构建应用之前执行一个步骤来实现。
该脚本将使用该PlistBuddy
工具读取和递增版本号(假设您在Azure DevOps上使用macOS计算机)。
我还假设您正在使用此处major.minor.patch
所述的语义版本控制系统。该脚本应按照您所描述的那样增加版本号,然后将其写入应用程序文件中。请注意,如果您的项目中有其他文件,请更改该文件的路径Info.plist
- script: |
buildPlist="$(Build.SourcesDirectory)/Info.plist" # Enter the path to your plist file here
maxSubversionNumber=99 # Set what will be the maximum number to increment each sub version to
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$buildPlist")
majorVersion=`echo $versionNumber | awk -F "." '{print ($1 == "" ? 0 : $1)}'`
minorVersion=`echo $versionNumber | awk -F "." '{print ($2 == "" ? 0 : $2)}'`
patchVersion=`echo $versionNumber | awk -F "." '{print ($3 == "" ? 0 : $3)}'`
if [[ $patchVersion -ge $maxSubversionNumber ]]
then
patchVersion=0
if [[ $minorVersion -ge $maxSubversionNumber ]]
then
minorVersion=0
majorVersion=$(($majorVersion + 1))
else
minorVersion=$(($minorVersion + 1))
fi
else
patchVersion=$(($patchVersion + 1))
fi
newVersionNumber=`echo $versionNumber | awk -F "." '{print '$majorVersion' "." '$minorVersion' ".'$patchVersion'" }'`
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $newVersionNumber" "$buildPlist"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句