Google Play 上新版本应用的上传失败并出现签名错误

Posted

技术标签:

【中文标题】Google Play 上新版本应用的上传失败并出现签名错误【英文标题】:Upload failed with signing error for new version of an app on Google Play 【发布时间】:2013-07-21 17:03:11 【问题描述】:

目前,我在 Google Play 上的三个应用在过去几天尝试上传新版本时遇到了类似这样的签名错误:

上传失败 您上传的 APK 使用与之前的 APK 不同的证书进行签名。您必须使用相同的证书。您现有的 APK 使用带有指纹的证书进行签名:

[ SHA1:87:17:A3:71:CD:CF:D6:73:71:56:B1:59:DE:89:6D:5A:E0:EE:31:8A,SHA1:4C: 45:1E:30:2D:04:F4:DC:36:0E:EF:29:1B:1E:E1:02:C0:E8:E9:85]

并且用于签署您上传的 APK 的证书具有指纹:

[SHA1:87:17:A3:71:CD:CF:D6:73:71:56:B1:59:DE:89:6D:5A:E0:EE:31:8A]

我仔细检查了密钥库,它是我一直使用的那个。事实上,一些应用程序有一个使用相同密钥库的专业版,并且更新工作正常。引人注目的是 IMO 是旧的现有 APK 的奇怪指纹,在上述情况下,其中有第二个条目,其中包含“SHA1:”,并且对于其他未通过旧指纹的应用程序之一被列为“[]” ,即一个空的。与此同时,我还更新了其他应用程序,在大多数情况下一切正常。唯一(我注意到),我遇到问题的三个应用程序有一个共同点,就是这些应用程序都很旧,第一个 APK 版本可以追溯到 2009 年甚至 2008 年。但是专业版 - 一切正常- 稍后介绍。

有一个类似的问题Upload failed for newer version apk on google play,但是浏览器缓存解决方案不起作用,我也很有信心我使用了正确的密钥。

有人知道这里的解决方案是什么吗?我开始认为,也许对于某些较旧的应用程序,指纹是从 Google 方面的 APK 中错误地提取的(因此一个空的,另一个 IMO 对旧版本的指纹有点奇怪)。但通常问题源于自己的耳朵之间......

谢谢

【问题讨论】:

+1 对于措辞恰当的问题。不幸的是,我目前没有任何建议;-( 【参考方案1】:

可以使用多个密钥对 APK 进行签名。这从来都不是一个真正得到很好支持的行为,并且键的处理顺序是未定义的。但是,如果您的早期 APK 使用两个密钥(如消息所示)进行签名,那么您的更新将需要使用所有相同的密钥(可能以相同的顺序)进行签名。

看起来第一个密钥与您使用的相同,因此您需要找到第二个密钥的密钥库。也许您的构建过程的某些部分是在上传之前重新签署 APK。一个可能的嫌疑人可能是您在 ~/.android 中的调试密钥库。

【讨论】:

谢谢,但是列为“[ ]”的另一个指纹呢?没有密钥签名肯定是不可能的。【参考方案2】:

我也遇到了同样的问题。什么都没有改变,我仍在使用相同的密钥库,并在两周前更新了应用程序,没有任何问题。现在说签名的应用更新只有一个 SHA1-hash 指纹证书,而商店中现有的应用有两个不同的 SHA1-hash 指纹,(其中一个与应用更新的指纹相同)。所以看起来它曾经用两个证书签名,但现在只有一个。但是在导出和签名过程中没有任何改变——它是通过 eclipse 导出签名的应用程序完成的,因为它一直都是。

也许它过去总是与两个签名,其中一个已被移动或删除。这是我目前唯一的理论。或者 Google 领域的 Play 开发者控制台上传/签名检查代码中的某些内容可能已过期。

我们的应用与 OP 的应用共享的另一个细节是,它也是在 2009 年首次发布的。

【讨论】:

非常有趣。确实和我的情况完全一样。我个人认为这支持了旧应用程序存在特殊问题的理论。 据此,您可以通过这种方式检查 APK 的证书指纹...***.com/questions/11331469/… 这表明它们应该是 SHA-1 - 我注意到当我这样做时我的指纹是 MD5withRSA - 也许当密钥库具有带有 MD5withRSA 的证书时,这是一个问题。您可以通过这种方式检查您的 APK,看看是否有有效的 APK 和无效的 APK 之间的区别?也许谷歌(意外地)本月放弃了对旧 MD5 证书的支持。 他们现在已经修复了,这是 Google 的问题。 啊,那我再试试

以上是关于Google Play 上新版本应用的上传失败并出现签名错误的主要内容,如果未能解决你的问题,请参考以下文章

Google Play应用 “更新被拒“ 后续处理 ( 上传新版本后 , 一定要停用被拒的版本, 才可以通过审核 | 停用被拒的版本 | 送审 )

Google Play 控制台中的“创建新版本”显示为灰色

自动创建应用到 Google Play

将新版本的 apk 更新到 Google Play 时出现问题

除非清除 Google Play 缓存,否则 Google Play 不会显示新版本的应用

Google Play 商店发布问题 [关闭]