Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure devops 使用Azure Devops在iOS应用程序中自动增加版本号_Azure Devops_Xamarin.ios_Azure Pipelines_Versioning - Fatal编程技术网

Azure devops 使用Azure Devops在iOS应用程序中自动增加版本号

Azure devops 使用Azure Devops在iOS应用程序中自动增加版本号,azure-devops,xamarin.ios,azure-pipelines,versioning,Azure Devops,Xamarin.ios,Azure Pipelines,Versioning,我正在使用Azure Devops yaml管道构建iOS应用程序。在运行时,我想在info.plist文件中的每个构建之后自动增加Cbundle版本号 例如:版本从0.0.1->0.0.99->0.1.0->0.1.99->0.2.0->0.99.99->1.0.0开始 关于如何在不使用任何第三方扩展的情况下实现这一点,有什么建议吗? 谢谢 您可以通过在构建应用程序之前执行脚本步骤来实现这一点。 此脚本将使用PlistBuddy工具读取并增加版本号(假设您在Azure DevOps上使用mac

我正在使用Azure Devops yaml管道构建iOS应用程序。在运行时,我想在info.plist文件中的每个构建之后自动增加Cbundle版本号

例如:版本从0.0.1->0.0.99->0.1.0->0.1.99->0.2.0->0.99.99->1.0.0开始

关于如何在不使用任何第三方扩展的情况下实现这一点,有什么建议吗?
谢谢

您可以通过在构建应用程序之前执行
脚本
步骤来实现这一点。
此脚本将使用
PlistBuddy
工具读取并增加版本号(假设您在Azure DevOps上使用macos机器)。
我还假设您正在使用所述的语义版本控制系统
major.minor.patch

此脚本应该按照您的描述增加版本号,然后将其写入应用程序的
Info.plist
文件。请注意,如果项目中的文件不同,请更改该文件的路径

-脚本:|
buildPlist=“$(Build.SourcesDirectory)/Info.plist”#在此处输入plist文件的路径
maxSubversionNumber=99#设置每个子版本的最大增量
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)}'`
如果[$patchVersion-ge$maxSubversionNumber]]
然后
补丁版本=0
如果[$minorVersion-ge$maxSubversionNumber]]
然后
minorVersion=0
majorVersion=$($majorVersion+1))
其他的
minorVersion=$($minorVersion+1))
fi
其他的
patchVersion=$($patchVersion+1))
fi
newVersionNumber=`echo$versionNumber | awk-F'{print'$majorVersion'.'''.$minorVersion'.$patchVersion'.}'`
/usr/libexec/PlistBuddy-c“Set:CFBundleShortVersionString$newVersionNumber”“$buildPlist”

Hey@Jobert,谢谢你,伙计!嗨@Jobert,有没有办法不用PlistBuddy工具实现同样的效果?@SD4还有其他一些方法。这取决于构建机器上的资源。您可以尝试寻找一些XML工具来读取和写入版本号。你为什么不能用PlistBuddy?不,我能用PlistBuddy。我只是想知道是否有不同的方法。我会查出来的谢谢!