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

SD4

我将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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Azure Pipeline-递增内部版本号并在Web应用程序中显示

如何使用 Azure Pipelines 自动增加 Android 应用程序的构建 ID 和版本号

如何在 Azure Pipelines 中自动递增 Xamarin Android 内部版本号和版本号?

如何将发布ID和内部版本号提取到我的Azure DevOps部署的PHP应用程序中

使用Azure DevOps和App Center递增Android App的内部版本和版本号

使用git在Python网络服务器中自动递增版本号

使用存储在注册表中的应用程序版本号在Inno Setup中检测并卸载旧版本的应用程序

增加版本号 android 或 iOS 类库 azure devops

即使用户没有安装要更新的应用程序,我也可以增加iOS / Android应用程序的版本号吗

CICD YML 中的 azure devops 版本号

使用当前和所需的内部版本号执行应用程序强制更新

使用Visual Studio App Center构建iOS或Android的React Native时,如何将内部版本号用作应用程序版本号的一部分?

从Azure DevOps发布管道获取版本号和内部版本号以显示在网站中

Cordova应用程序中的iOS内部版本号

使用Inno Setup提取应用程序版本号(但不包括第四个编号)

无法访问Azure Devops管道bash脚本中的内部版本号

如何在 Azure DevOps 工件的轮子版本号中包含分支名称?

Azure DevOps 发布管道:从变量组中检索 Key Vault Secret 的版本号

如何为 Azure Pipeline 中创建的 .msixupload 文件自动增加包版本号?

Azure DevOps Pieplines:使用当前内部版本号创建文本文件

如何使用Azure DevOps为Xcode项目增加内部版本号

如何使用Jenkins自动执行package.json中的版本号

颤振应用程序中的版本号变空

Azure Pipelines选项内部版本号:$(Rev:r)在每个内部版本上递增吗?

使用PlatformIO自动增加内部版本号

Azure管道,从内部版本号中删除某些字符

在应用程序设置中同步应用程序版本和内部版本号

需要使用C ++程序查找Java版本号

如何使用 azure devOps 将 Web 应用程序自动上传到 cumlocity