У меня есть приложение для 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'