3 回答
TA贡献1854条经验 获得超8个赞
您错误地用调试密钥签名了吗?
如何检查使用了哪些签名密钥?
从APK收集信息
keytool
:
keytool -list -printcert -jarfile original.apk keytool -list -printcert -jarfile update.apk
Owner: CN=My App, O=My Company, L=Somewhere, C=DE Issuer: CN=My App, O=My Company, L=Somewhere, C=DE Serial number: 4790b086 Valid from: Mon Nov 11 15:01:28 GMT 2013 until: Fri Mar 29 16:01:28 BST 2041 Certificate fingerprints: MD5: A3:2E:67:AF:74:3A:BD:DD:A2:A9:0D:CA:6C:D4:AF:20 SHA1: A6:E7:CE:64:17:45:0F:B4:C7:FC:76:43:90:04:DC:A7:84:EF:33:E9 SHA256: FB:6C:59:9E:B4:58:E3:62:AD:81:42:...:09:FC:BC:FE:E7:40:53:C3:D8:14:4F Signature algorithm name: SHA256withRSA Version: 3
keytool
-jarfile
jarsigner
jarsigner -verify -verbose:summary -certs original.apk jarsigner -verify -verbose:summary -certs update.apk
sm 4642892 Thu Apr 17 10:57:44 CEST 2014 classes.dex (and 412 more) X.509, CN=My App, O=My Company, L=Somewhere, C=DE [certificate is valid from 11/11/13 12:12 to 29/03/41 12:12] [CertPath not validated: Path does not chain with any of the trust anchors]
比较APK之间的所有者、SHA 1和到期值
如果 业主/X.509身份值是 CN=Android Debug, O=Android, C=US
,那么您已经与您的 调试键,而不是原始的发布密钥。 如果 SHA 1指纹值在原始的和更新的apk之间是不同的,然后您做了。 不对两个apk使用相同的签名密钥。 如果 业主/X.509标识值是不同的,或者两个apk之间的证书到期日期不同,那么您就可以了。 不对两个apk使用相同的签名密钥。
搜索原始密钥存储库,检查备份
keytool
keytool -list -keystore my-release.keystore
我在任何地方都找不到原来的密钥存储库
警告:
将您的密钥存储库和私钥保存在一个安全可靠的位置,并确保您有它们的安全备份。 如果你在Google Play上发布了一个应用程序,然后失去了你签署应用程序的密钥,你将无法发布对你的应用程序的任何更新,因为你必须始终用相同的键签署你的应用程序的所有版本。
在APK的第一个版本之后,所有后续版本都必须使用完全相同的键进行签名。
我能从原始APK中提取原始签名密钥吗?
我可以迁移到一个新的签名密钥吗?
我能做什么?
- 3 回答
- 0 关注
- 2135 浏览
添加回答
举报