目前,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对于旧版本有点奇怪的指纹)。但通常问题源于自己的耳朵......
由于
答案 0 :(得分:0)
可以使用多个密钥对APK进行签名。这从来就不是一个很好的支持行为,并且键的处理顺序是不确定的。但是如果您的早期APK使用两个密钥签名,如消息所示,那么您的更新将需要使用所有相同的密钥(可能以相同的顺序)进行签名。
看起来第一个键与您使用的键相同,因此您需要找到第二个键的密钥库。也许你的构建过程的某些部分在上传之前重新签署了APK。可能是嫌疑人可能是〜/ .android中的调试密钥库。
答案 1 :(得分:0)
我也遇到了同样的问题。没有任何改变,我仍然使用相同的密钥库,并在两周前更新了应用程序没有任何问题。现在它说已签名的应用程序更新只有一个SHA1哈希指纹证书,并且商店中的现有应用程序有两个不同的SHA1哈希指纹(其中一个与应用程序更新相同)。所以看起来它曾经用两个证书签名,但现在只有一个。但是在导出和签名过程中没有任何改变 - 它是通过eclipse导出签名的应用程序完成的。
也许以前总是用两个签名,其中一个已被移动或删除。这是我此时唯一的理论。或者Google地区的Play开发者控制台上传/签名检查代码中的某些内容已过期。
我们的应用程序与OP的应用程序共享的另一个细节是它也于2009年首次发布。