为什么Android Bundle Tool无法识别我Keystore中的密钥条目?
问题根源
你通过keytool -list查询到的appsigning条目类型为trustedCertEntry,这类条目仅存储公钥证书,不包含签名所需的私钥。而bundletool执行签名操作时,只会识别类型为PrivateKeyEntry的包含私钥的条目,因此会提示找不到对应别名的密钥。
常见诱因
- 你当前使用的keystore不是最初生成签名密钥对的原始文件,仅导入了公钥证书作为信任条目,未导入对应私钥
- 别名存在肉眼不易识别的前后空格/特殊字符,keytool输出时自动忽略了空格,但bundletool会严格匹配你传入的
appsigning别名 - 若你为该条目单独设置了与keystore不同的密码,未通过
--key-pass参数传入时也可能触发类似报错(部分版本bundletool的错误提示存在歧义)
排查与解决方法
- 执行以下命令查看条目详细信息,确认条目类型:
keytool -list -v -keystore app-signing-key.keystore -alias appsigning
- 若确认条目为
trustedCertEntry,请找到最初生成密钥对的原始keystore文件替换当前文件,原始文件中的对应条目类型应为PrivateKeyEntry - 若原始keystore丢失,需要重新生成签名密钥对,后续使用新的密钥签名应用
- 若确认条目类型无误,可检查别名是否存在隐藏字符,或者添加
--key-pass参数传入条目独立密码再重试
内容的提问来源于stack exchange,提问作者p.matsinopoulos
相关产品推荐
相关产品推荐

