VSTS - Android-подпись - защищенный файл не существует или не авторизован для использования - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь подписать свой apk перед его развертыванием. Вот фрагмент yaml:

- task: AndroidSigning@2
    displayName: 'Signing'
    inputs:
        apkFiles: 'Platforms/MyApp.Android/bin/Release/*.apk'
        jarsign: true
        jarsignerKeystoreFile: 'mykey.keystore'
        jarsignerKeystorePassword: '$(myKeyPassword)'
        jarsignerKeystoreAlias: "mykey"
        jarsignerKeyPassword: '$(myKeyPassword)'
        zipalign: true

Проблема в том, что, хотя файл mykey.keystore находится в корне решения (проверено в системе контроля версий), я получил следующую ошибку проверки yaml:

Этап Android: шаг ввода jarsignerKeystoreFile ссылки защищенного файла mykey.keystore, который не может быть найден. Безопасный файл делает не существует или не авторизован для использования.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2019

Это конфигурация сборки, которая работает для меня:

trigger:
  - master

pool:
  vmImage: 'Ubuntu-16.04'

variables:
  - group: 'Android Signing keys'

steps:
  - task: Gradle@2
    inputs:
      workingDirectory: ''
      gradleWrapperFile: 'gradlew'
      gradleOptions: '-Xmx3072m'
      javaHomeOption: 'JDKVersion'
      jdkVersionOption: '1.11'
      jdkArchitectureOption: 'x64'
      publishJUnitResults: false
      testResultsFiles: '**/TEST-*.xml'
      tasks: 'assembleRelease'

  - task: DownloadSecureFile@1
    inputs:
      secureFile: key-store.jks

  - task: AndroidSigning@3
    inputs:
      apkFiles: '**/*.apk'
      apksign: true
      apksignerKeystoreFile: 'key-store.jks'
      apksignerKeystorePassword: '$(KEYSTORE_PASSWORD)'
      apksignerKeystoreAlias: '$(KEYSTORE_ALIAS)'
      apksignerKeyPassword: '$(KEY_PASSWORD)'
      # When it was set to true the task threw this error:
      # zipalign: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
      zipalign: false

  - task: CopyFiles@2
    inputs:
      contents: '**/*.apk'
      targetFolder: '$(build.artifactStagingDirectory)'

  - task: PublishBuildArtifacts@1

0 голосов
/ 05 мая 2018

Вопреки тому, что говорит doc , файл хранилища ключей не может быть из системы контроля версий. Он должен быть secure file загружен в library определений сборки (см. post ).

Итак, загрузите этот файл, затем запустите создание определения сборки вручную, выберите задачу Android Signing, для безопасного файла есть раскрывающийся список. Выберите файл, который вы загрузили в библиотеку, и нажмите «Просмотр YAML». Затем вы можете увидеть правильный ввод для использования jarsignerKeystoreFile: '<someId>'.

...