使用不同的证书错误签名,但他们使用相同的密钥库

Posted

技术标签:

【中文标题】使用不同的证书错误签名,但他们使用相同的密钥库【英文标题】:Signed with a different certificate error but they are using the same keystore 【发布时间】:2014-08-07 22:11:11 【问题描述】:

所以我请了一位客户来给我一个应用程序,让我对其进行一些小修改。但是,在我进行修改并签名后,使用以前开发人员的密钥库,它不会上传到市场。

You uploaded an APK that is signed with a different certificate to your previous APKs. You must use the same certificate. Your existing APKs are signed with the certificate(s) with fingerprint(s): It then goes to show that the SHA1 are different

如果我有密钥库,我可以不更新应用程序吗?

【问题讨论】:

【参考方案1】:

看起来您没有使用相同的密钥库。您可以使用密钥库工具轻松检查这一点。

检查这个 SO 问题:How to check certificate name and alias in keystore files?

如果签名证书与原始证书不匹配,则无法更新现有应用(无法解决此问题)

【讨论】:

SHA1 是否特定于每个密钥库或每个开发人员的 PC? 不,您可以使用任何计算机上的相同密钥库进行签名。我怀疑您没有像您认为的那样正确的密钥库。 这可能是问题所在。我想我们不确定。我所知道的是我们有一个带有别名和密码的密钥库,一切似乎都工作得很好,但是当我们上传它时,SHA1 是不同的......我想我们只能说它不对,因为我们没有访问权限给之前的开发者。 您可以确认当前的证书信息(看我原来的答案)。 @Bogger 我做了列表和别名列表,它给出的只是 MD5 而不是 SHA1【参考方案2】:

当您拥有匹配的密钥库和匹配的密码时,您应该能够上传。如果您尝试使用与原始密钥库不同的密钥库上传应用程序,您就会遇到问题。

如果原件丢失,则无法更新现有的。您必须删除旧应用程序并将另一个应用程序加载到 Play 商店。这当然会扰乱当前用户并引起混乱。据我所知,这是次要案例中的解决方案。

【讨论】:

@jcaruso 我已经签署并加载了来自不同计算机的更新。如果您正在传递密钥库,并且输入了正确的密码,那么一切都应该正常。

以上是关于使用不同的证书错误签名,但他们使用相同的密钥库的主要内容,如果未能解决你的问题,请参考以下文章

jarsigner:签名者的证书是自签名警告

无法使用 Google Play 应用签名上传证书更新发布 APK(使用原始密钥库)

Google Play 应用签名证书和上传证书都在 Google Play 控制台中创建了相同的 SHA1 密钥

数字签名错误 - 签名长度不正确:得到344但期望256

了解密钥库、证书和别名

如何使用自签名证书创建密钥库和信任库?