【问题标题】:How to update Android and iOS MAUI app version via Azure DevOps build script如何通过 Azure DevOps 构建脚本更新 Android 和 iOS MAUI 应用程序版本
【发布时间】:2022-12-17 21:13:12
【问题描述】:

我有一个包含 Android 和 iOS 项目的 MAUI 应用程序。当我使用 Azure DevOps 脚本构建此应用程序时,我想自动更改应用程序版本。

我怎样才能做到这一点?

【问题讨论】:

    标签: azure-devops maui


    【解决方案1】:

    在您的 MAUI 应用 .csproj 文件中,添加以下指令:

    <Target Name="UpdateAndroidAppVersion">
       <XmlPoke XmlInputPath="PlatformsAndroidAndroidManifest.xml" Namespaces="&lt;Namespace Prefix='android' Uri='http://schemas.android.com/apk/res/android' /&gt;" Query="manifest/@android:versionCode" Value="$(VersionCode)" />
       <XmlPoke XmlInputPath="PlatformsAndroidAndroidManifest.xml" Namespaces="&lt;Namespace Prefix='android' Uri='http://schemas.android.com/apk/res/android' /&gt;" Query="manifest/@android:versionName" Value="$(VersionNumber).$(BuildNumber)" />
    </Target>
    
    <Target Name="UpdateIOSAppVersion">
       <XmlPoke XmlInputPath="Platforms/iOS/Info.plist" Query="//dict/key[. = 'CFBundleVersion']/following-sibling::string[1]" Value="$(BuildNumber)" />
       <XmlPoke XmlInputPath="Platforms/iOS/Info.plist" Query="//dict/key[. = 'CFBundleShortVersionString']/following-sibling::string[1]" Value="$(VersionNumber).$(BuildNumber)" />
    </Target>
    

    在您的 azure-pipelines.yml 脚本中,在顶层声明变量以控制版本表示(特定变量值仅作为示例显示):

    variables:
      - name: versionNumber 
        value: "2023.1"
      - name: buildNumber
        value: $[counter(variables['versionNumber'], 0)]
      - name: versionCode
        value: $[counter('versionCode', 1)]
    

    然后,在您的 yml 脚本中,分别为 android 和 ios 作业声明以下 MSBuild 指令:

    安卓作业指令:

    - task: MSBuild@1
      displayName: "Update Android App Version"
      inputs:
        solution: '**/MyMAUIApplication.csproj' 
        msbuildArguments: '/t:UpdateAndroidAppVersion /p:VersionNumber="$(versionNumber)" /p:VersionCode="$(versionCode)" /p:BuildNumber="$(buildNumber)"'
    

    iOS工作指令:

    - task: MSBuild@1
      displayName: "Update iOS App Version"
      inputs:
        solution: '**/MyMAUIApplication.csproj' 
        msbuildArguments: '/t:UpdateIOSAppVersion /p:VersionNumber="$(versionNumber)" /p:VersionCode="$(versionCode)" /p:BuildNumber="$(buildNumber)"'
    
    

    【讨论】:

      猜你喜欢
      • 2019-05-30
      • 2022-10-17
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 2020-05-13
      • 2014-11-05
      • 1970-01-01
      相关资源
      最近更新 更多