azure-devops - 使用 Azure Devops 在 iOS 应用程序中自动增加版本号
问题描述
我正在使用 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"
推荐阅读
- r - data.table 没有按预期修改列
- php - 用于过滤包含多维数组中搜索的值的 eval
- .net - If条件VB.net中的Linq Where语句
- julia - Julia - 定义一个二维数组,其中一个数组作为一维元素
- docker - docker-compose 日志记录不适用于 syslog 选项
- delphi - 如何将所有 *.txt 打开到列表框
- python - Python 函数中的 reStructuredText 未在 Robot Framework hub 中显示
- r - Forecast::ets, auto.arima 偏移 1
- python - 如何防止 python 服务器写入终端窗口?
- ios - 向 tableViewCell 添加一些标签。表数取决于服务器数据