VSTS - Android签名 - 安全文件不存在或未经授权使用

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

我正在尝试在部署之前签署我的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。安全文件不存在或未经授权使用。

yaml azure-pipelines
2个回答
2
投票

doc所说的相反,密钥库文件不能来自源代码控制。它必须是在构建定义的secure file上传的library(请参阅此post)。

所以上传该文件然后开始创建手动构建定义,选择Android Signing任务,有一个安全文件的下拉列表。选择您在库中上传的文件,然后单击“查看YAML”。然后你可以看到使用jarsignerKeystoreFile: '<someId>'的正确输入。


0
投票

这是一个适合我的构建配置:

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

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