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

Posted

技术标签:

【中文标题】如何在 Azure Pipelines 中自动增加 Xamarin Android 内部版本号和版本号?【英文标题】:How do I autoincrement Xamarin Android build and version numbers in Azure Pipelines? 【发布时间】:2021-09-18 18:44:40 【问题描述】:

我看了official documentation,没找到太多,

Xamarin.android 使用 Xamarin 构建 Android 应用 任务:XamarinAndroid@1 输入: #projectFile: '**/*.csproj' #target: # 可选 #outputDirectory: # 可选 #configuration: # 可选 #createAppPackage: true # 可选 #clean: false # 可选 #msbuildLocationOption: 'version' # 可选。选项:版本、位置 #msbuildVersionOption: '15.0' # 可选。选项:最新、16.0、15.0、14.0、12.0、4.0 #msbuildFile: # 当 msbuildLocationOption == Location 时需要 #msbuildArchitectureOption: 'x86' # 可选。选项:x86、x64 #msbuildArguments: # 可选 #jdkOption: 'JDKVersion' # 选项:jDKVersion、路径 #jdkVersionOption: 'default' # 可选。选项:默认、1.11、1.10、1.9、1.8、1.7、1.6 #jdkDirectory: # 当 jdkOption == 路径时需要 #jdkArchitectureOption: 'x64' # 可选。选项:x86、x64

感觉好像我遗漏了一些东西,因为 Google Play 商店需要增加版本和构建,并且每个人都需要在每个版本上完成。

【问题讨论】:

【参考方案1】:

您必须在清单文件中进行设置:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string"
          android:sharedUserId="string"
          android:sharedUserLabel="string resource" 
          android:versionCode="integer"
          android:versionName="string"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
    . . .
</manifest>

你可以使用token replace extension如下:

variables:
  major: 1
  number: $[counter(variables['major'], 100)]

steps:
- bash: echo $(minor)
- task: qetza.replacetokens.replacetokens-task.replacetokens@3
  displayName: 'Replace tokens'
  inputs:
    targetFiles: |
      **/AndroidManifest.xml 

这样的文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string"
          android:sharedUserId="string"
          android:sharedUserLabel="string resource" 
          android:versionCode="#number#"
          android:versionName="string"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
    . . .
</manifest>

【讨论】:

以上是关于如何在 Azure Pipelines 中自动增加 Xamarin Android 内部版本号和版本号?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure Pipelines YAML 构建定义中接收修订

如何在 Azure Pipelines Yaml 上循环多个 Azure 订阅?

我可以通过 CLI 验证 azure-pipelines.yml 文件吗?

如何在 Azure ADF Pipelines 中更改 ADF 接收器数据集 Parquet 文件数据类型

如何将一个参数文件用于使用一些不同参数的模板? (在 DevOps Pipelines 中使用 Powershell 部署 Azure LogicApp)

如何在 Azure DevOps Pipelines 上指定 Android SDK 构建工具版本