android - 如何使用 azure pipeline 生成 .AAB 文件并签署 Android 应用程序包

标签 android azure azure-devops azure-pipelines

我想使用 Azure 管道生成 Android 应用程序包 (.aab) 文件,但在生成 Android 应用程序包文件时遇到问题。

我使用了以下 Gradle 任务来生成并签署 .aab 文件。但是,它生成 .APK 文件。我想生成.aab文件。

- task: Gradle@2
  inputs:
    gradleWrapperFile: 'gradlew'
    tasks: 'buildRelease'
    publishJUnitResults: false
    javaHomeOption: 'JDKVersion'
    sonarQubeRunAnalysis: false
    spotBugsAnalysis: false

这是脚本,我在其中使用 jarsigner 来签署 .aab 文件:

- task: CmdLine@2
  displayName: 'Signing and aligning AAB file(s) app\build\outputs\bundle\release\app-release.aab'
  inputs:
    script: 'jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore $(KeyStoreFile.secureFilePath) -storepass $(StorePassword) -keypass $(KeyPassword) $(system.defaultworkingdirectory)/app/build/outputs/bundle/release/app-release.aab $(KeyStoreAlias)'

最佳答案

在 Gradle 任务中: 我需要将 tasks 值“buildRelease”更改为“:app:bundleRelease”以生成 .aab 文件。

这是我用来生成和签署 .aab 文件的 .yaml 文件:

trigger:
- master

pool:
  vmImage: ubuntu-latest

steps:
- task: DownloadSecureFile@1
  inputs:
    secureFile: 'AndroidApp.jks'

- task: Gradle@2
  inputs:
    gradleWrapperFile: 'gradlew'
    tasks: ':app:bundleRelease'
    publishJUnitResults: false
    javaHomeOption: 'JDKVersion'
    sonarQubeRunAnalysis: false
    spotBugsAnalysis: false


- task: CmdLine@2
  displayName: 'Signing and aligning AAB file(s) app\build\outputs\bundle\release\app-release.aab'
  inputs:
    script: 'jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore $(KeyStoreFile.secureFilePath) -storepass $(StorePassword) -keypass $(KeyPassword) $(system.defaultworkingdirectory)/app/build/outputs/bundle/release/app-release.aab $(KeyStoreAlias)'

- task: CopyFiles@2
  inputs:
    SourceFolder: '$(system.defaultworkingdirectory)/app/build/outputs/bundle/release/'
    Contents: '**'
    TargetFolder: '$(build.artifactstagingdirectory)'

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

我在签名任务中创建并使用了以下变量:

KeyStoreFile.secureFilePath
StorePassword
KeyPassword
KeyStoreAlias

关于android - 如何使用 azure pipeline 生成 .AAB 文件并签署 Android 应用程序包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68175641/

相关文章:

android - 覆盖 EditText 选择功能

android - 为 Android 调整 FontSizeToFitWidth

azure - Docker Compose php/mysql 无法连接mysql

powershell - 自动化 Runbook 中的 Start-AzureStorageBlobCopy 错误

azure - 对组中的用户隐藏 Azure DevOps 中的文件夹名称、板名称和项目设置页面

java - 仅显示我的分数的最后数字

Android - 如何在只有一个图标的 Android 中为多个通知设置计数器?

c# - 缩小规模时,Azure 上跨自动缩放实例的 SignalR 负载平衡会发生什么情况?

azure - 修复 Azure DevOps 上的应用程序部署错误

java - Azure 构建管道,docker compose - 设置环境变量