android - 必须使用与先前版本相同的证书对apk进行签名

时间:2012-08-04 19:14:45

标签: android eclipse google-play keytool jarsigner

我正在尝试将我的Android应用上传到Google Play市场,我收到了错误消息:

the apk must be signed with the same certificates as the previous version

有趣的是我使用原始密钥和原始密码,所以我对可能导致此问题的原因感到困惑。

1)我确实将我的Mac OS X升级到Lion,我认为64位操作系统是早期的32位操作系统。这可能是问题吗?

2)在制作这个新的应用程序版本之前,我确实更新了Android工具:Eclipse,SDK和Java。这可能是问题吗?

3)我也尝试过运行

jarsigner -verify -verbose -certs

在Google Play上的旧版应用中,新应用和证书有效时间相同。

4)我手动创建了新的APK,并在Eclipse中使用Export Android Application。

5)手动我在Eclipse中使用`

创建了APK
Android Tools -> Export Unsigned Application and then using
jarsigner -verbose -keystore mykeystore.keystore app.apk companyName
/Developer/android-sdk-mac_86/tools/zipalign -v 4 app.apk app_aligned.apk

所以我不认为问题在于我使用的是错误的密钥库。我已经读过这个问题也可能是由

引起的

A)尝试上传调试apk而不是发布apk。

B)清单中的包名错误。

C)不增加versionCode和versionName。

除了使用错误的梯形校正之外还有其他可能导致此问题的事情吗?

1 个答案:

答案 0 :(得分:1)

在我的情况下,事实证明我使用的是错误的密钥库。是什么让我意识到这一点正在运行

jarsigner -verify -verbose -certs android_app

在上一个和新的应用程序上,并为每个应用程序获取不同的CERT.RSA文件名。

所以我挖了一下,找到了另一个密钥库,结果证明是正确的。