如何通过命令行使用新密钥库签名Android App Bundle?
解决AAB命令行签名及Google Play上传失败问题
你遇到的这个签名无效错误,核心原因是当前使用的签名算法不符合Google Play的要求——现在Google Play强制要求应用签名使用SHA-256相关算法,而你用的jarsigner命令里还是旧的SHA1算法,这就导致签名不被平台认可。
修正后的jarsigner签名命令
直接修改命令里的算法参数,就能符合Google Play的要求:
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore example.jks bundle.aab keystoreAlias
重点调整这两个关键参数:
- 把
SHA1withRSA替换为SHA256withRSA(签名算法) - 把
SHA1替换为SHA-256(摘要算法)
另外要确保你的密钥库文件路径、密钥别名都是正确的,输入命令时注意不要拼写错误。
更推荐的现代签名方式:用apksigner
虽然jarsigner能解决问题,但Google现在更推荐用apksigner工具(属于Android SDK Build Tools组件)来签名应用束,它的命令更简洁,也更适配Android的签名规范:
apksigner sign --ks example.jks --ks-key-alias keystoreAlias bundle.aab
如果你的密钥库或密钥有密码,可以直接在命令里指定(注意明文密码存在安全风险,也可以不写让命令交互提示输入):
apksigner sign --ks example.jks --ks-pass pass:你的密钥库密码 --ks-key-alias keystoreAlias --key-pass pass:你的密钥密码 bundle.aab
验证签名是否有效
签名完成后,建议先验证一下签名是否正确,避免再次上传失败:
用jarsigner验证
jarsigner -verify -verbose -certs bundle.aab
如果输出里没有错误提示,就说明签名有效。
用apksigner验证
apksigner verify bundle.aab
如果返回Verified相关的提示,就说明签名符合要求了。
这样修改后再上传到Google Play,应该就能解决那个签名无效的错误了。
内容的提问来源于stack exchange,提问作者hallz12
相关产品推荐
相关产品推荐

