您的 Android 应用程序包具有超过 1 个证书链。确保您的 App Bundle 只有 1 个证书链,然后重试

问题描述 投票:0回答:1

我在尝试通过 Azure 管道将 Android 应用程序发布到 Play 商店时遇到问题。下面是我的 yml 文件,我使用 Maui .NET8 谢谢。

注意:我有另一个管道也可以将其他应用程序登录到同一个 Play 商店

`-阶段:BuildAndroid 显示名称:构建 Android 职位:

  • 工作:BuildAndroidJob 水池: vmImage:'windows-2022'

    步骤:

    • 任务:CmdLine@2 输入: 脚本:'dotnet工作负载安装maui'

    • 任务:UseDotNet@2 displayName: '安装.NET sdk' 输入: 软件包类型:sdk 版本:8.0.x 安装路径:$(Agent.ToolsDirectory)/dotnet

    • 任务:JavaToolInstaller@0 displayName:配置Java版本 输入: 版本规格:'11' jdk架构选项:'x64' jdkSourceOption:“预安装”

    • 任务:android-manifest-version@1 显示名称:Android 版本构建 输入: 源路径:'路径/to/AndroidManifest.xml' 版本代码选项:'buildid' 版本代码:'$(Build.BuildId)' 版本名称:'$(buildVersionPrefix).$(Build.BuildId)' 版本代码偏移量:'10000' 打印文件:true

    • 任务:NuGetToolInstaller@1 显示名称:安装nuget工具

    • 任务:DotNetCoreCLI@2 输入: 命令:“构建” 项目:'**/*.sln' 参数:'-c Release -f net8.0-android'

    • 任务:AndroidSigning@2 显示名称:'签名.aab' 输入: apkFiles: '**/*.aab' 罐标:正确 jarsignerKeystoreFile:'$(KeyStoreSecureFileName)' jarsignerKeystorePassword: '$(KeystorePassword)' jarsignerKeystoreAlias: '$(别名)' jarsignerKeyPassword: '$(别名密码)' jarsignerArguments: '-sigalg SHA256withRSA -digestalg SHA-256' zipalign:真

    • 任务:复制文件@2 displayName:将 .apk 复制到暂存目录 输入: 内容:'**/*.apk' TargetFolder: '$(Build.ArtifactStagingDirectory)' 覆盖:true 展平文件夹:true

    • 任务:复制文件@2 displayName:将 .aab 复制到暂存目录 输入: 内容:'**/*.aab' TargetFolder: '$(Build.ArtifactStagingDirectory)' 覆盖:true 展平文件夹:true

    • 任务:PublishBuildArtifacts@1 显示名称:发布 .apk 和 .aab 输入: 发布路径:'$(Build.ArtifactStagingDirectory)' 工件名称:'drop' 发布位置:'容器'`

我已尝试删除登录任务,但仍然遇到问题。

azure maui pipeline digital-signature release
1个回答
0
投票

不要使用 AndroidSigning@2 任务,而是使用

GooglePlayRelease@4

使用 GooglePlayConnectionService 并运行管道。

请参阅博客此处了解详细步骤。

此处
在您的 Azure DevOps 帐户中安装 Official Google play extension:-

安装扩展后,创建私钥并使用相同的私钥和 Google Play 开发者帐户在 Azure DevOps 中添加 Google Play Azure 服务连接

enter image description here

我的 Azure DevOps yaml 管道:-

jobs:
- job:
  displayName: 'Build and Publish to Google Play Store'
  pool:
    vmImage: 'windows-latest'

  steps:
  - task: CmdLine@2
    inputs:
      script: 'dotnet workload install maui'

  - task: UseDotNet@2
    displayName: 'Install .NET SDK'
    inputs:
      packageType: sdk
      version: 8.0.x
      installationPath: $(Agent.ToolsDirectory)/dotnet

  - task: JavaToolInstaller@0
    displayName: 'Configure Java version'
    inputs:
      versionSpec: '11'
      jdkArchitectureOption: 'x64'
      jdkSourceOption: 'PreInstalled'

  - task: android-manifest-version@1
    displayName: 'Version Android build'
    inputs:
      sourcePath: 'path/to/AndroidManifest.xml'
      versionCodeOption: 'buildid'
      versionCode: '$(Build.BuildId)'
      versionName: '$(buildVersionPrefix).$(Build.BuildId)'
      versionCodeOffset: '10000'
      printFile: true

  - task: NuGetToolInstaller@1
    displayName: 'Install NuGet tool'

  - task: DotNetCoreCLI@2
    inputs:
      command: 'build'
      projects: '**/*.sln'
      arguments: '-c Release -f net8.0-android'

  - task: CopyFiles@2
    displayName: 'Copy AAB to artifacts directory'
    inputs:
      SourceFolder: '$(System.DefaultWorkingDirectory)/YourMauiProject/bin/Release/net8.0-android/'
      Contents: '*.aab'
      TargetFolder: '$(Build.ArtifactStagingDirectory)'

  - task: PublishBuildArtifacts@1
    displayName: 'Publish Artifact: drop'
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - task: GooglePlayRelease@4
    displayName: 'Publish to Google Play Store'
    inputs:
      serviceConnection: 'GooglePlayConnectionService'
      applicationId: 'com.yourcompany.yourapp'
      action: 'SingleBundle'
      bundleFile: '$(Build.ArtifactStagingDirectory)/**/*.aab' # Adjust the path accordingly
      track: 'internal'

管道也可以在没有 GooglePlayRelease@4 任务的情况下工作。

参考Github问题

© www.soinside.com 2019 - 2024. All rights reserved.