Android Azure Devops Gradle сборки не удается подписать apk w zipalign, код выхода 1 - PullRequest
0 голосов
/ 17 октября 2019

У меня есть приложение для Android, и я пытаюсь настроить CICD в Azure Devops для нашей команды. Однако я не могу завершить этап «Сборка». Ошибка в подзадаче «Подписание Android» с сообщением об ошибке:

[ошибка] Ошибка: процесс '/Users/vsts/Library/Android/sdk/build-tools/19.1.0/zipalign'ошибка с кодом выхода 1

. Это работает, когда я отменяю опцию «zipalign» в задаче подписи. Но, как я прочитал, вы не должны развертывать приложения без предварительного использования zipalign.

Приложение построено в Android Studio (Kotlin). Все подобные проблемы, которые я обнаружил в Интернете, были связаны с ксамарином, который я не использую в данный момент.

Я развертываю на устройстве arm64, если это актуально. Сборка и подписывание в Android Studio не проблема (хотя я не уверен, что там используется zipalign по умолчанию, так как это не понятно из мастера создания подписанного APK. Я предполагаю, что он сделает это за вас, не спрашивая?). В любом случае, я, конечно же, пытаюсь автоматизировать сборку-развертывание в DevOps для запросов на получение ветки master, как обычно я делаю это с другими проектами.

Вот мой azure-pipelines.yaml

# Android
# Build your Android project with Gradle.
# Add steps that test, sign, and distribute the APK, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/android

trigger:
- master

pool:
  vmImage: 'macos-latest'

steps:
- task: Gradle@2
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    tasks: 'assembleDebug'

- task: AndroidSigning@3
  inputs:
    apkFiles: '**/*.apk'
    apksignerKeystoreFile: 'key.jks'
    apksignerKeystorePassword: 'XXXX'
    apksignerKeystoreAlias: 'key0'
    apksignerKeyPassword: 'XXXX'

- task: CopyFiles@2
  inputs:
    contents: '**/*.apk'
    targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'
...