我正在尝试在部署之前签署我的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。安全文件不存在或未经授权使用。
这是一个适合我的构建配置:
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