You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSTS Android签名报错:安全文件不存在或未获授权使用

解决AndroidSigning@2任务报错:"The secure file does not exist or has not been authorized for use"

这个问题我之前在Azure DevOps流水线配置中碰到过,核心原因是AndroidSigning@2任务默认会把jarsignerKeystoreFile参数指向Secure Files库中的文件,而不是你签入源码仓库的本地文件,所以即使文件在解决方案根目录,任务也找不到它,就会抛出这个错误。下面给你两种可行的解决办法:

办法一:使用Secure Files库管理Keystore(推荐,更安全)

如果你的keystore包含敏感信息,优先用这种方式:

  • 登录你的Azure DevOps项目,进入Pipelines > Library > Secure Files页面
  • 上传你的mykey.keystore文件到Secure Files库
  • 点击上传后的文件,进入详情页,找到Pipeline permissions选项,授权你的目标流水线可以使用这个文件
  • 保持你原来的YAML代码不变,现在任务就能正确找到Secure Files中的keystore文件了

办法二:直接引用源码仓库中的Keystore文件

如果你坚持要从源码目录读取keystore,需要调整任务的参数配置,改用本地文件路径的参数:

- task: AndroidSigning@2
  displayName: 'Signing'
  inputs:
    apkFiles: 'Platforms/MyApp.Android/bin/Release/*.apk'
    jarsign: true
    # 指定源码根目录下的keystore文件路径(相对于流水线工作目录)
    keystoreFile: 'mykey.keystore'
    keystorePassword: '$(myKeyPassword)'
    keystoreAlias: "mykey"
    keyPassword: '$(myKeyPassword)'
    zipalign: true

这里把原来的jarsignerKeystoreFile换成了keystoreFile,同时对应调整了密码和别名的参数名,这样任务就会从流水线的工作目录(也就是你的源码根目录)读取keystore文件,而不是去Secure Files库查找。

注意:把keystore签入源码仓库存在安全风险,因为任何能访问仓库的人都能拿到这个文件,所以更推荐第一种Secure Files的方式。

内容的提问来源于stack exchange,提问作者François

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:29:15