apk的不同签名

时间:2012-10-02 15:00:04

标签: android google-play apk

我在android上创建了一个应用程序并将其发布在Play商店中。我用新的私钥签署了我的apk。

上周,我想用我的新功能更新我的应用程序。所以我使用之前创建的相同私钥导出了我的新apk。然后我发布了,playstore接受了它。

但是在手机的Play商店中,应用程序无法更新。我必须先卸载它,如果我这样做,我将丢失我的数据。

所以我的问题是,如何在Google Play商店中制作可更新的apk

3 个答案:

答案 0 :(得分:7)

您无法更改上传到Play商店的apk的签名,您需要使用与之前相同的签名。如果您确实更改了应用程序的签名并尝试上传它,则会收到错误消息,告知已找到相同的应用程序但具有不同的签名。

如果您手动向用户发送带有更改签名的应用程序(例如邮件),则必须先卸载当前应用程序,然后才能使用新签名安装相同的应用程序。用户将丢失应用程序数据!这是一种安全机制,因此黑客/坏人无法改变你的apk并以这种方式获取用户数据。

Android系统使用签名来检查应用程序是否真的是手机上现有应用程序的更新。因为现在只有你的签名密码和东西,黑客不能在那里使用伪造的应用程序更新。

摘要:始终使用相同的签名!

检查:http://developer.android.com/tools/publishing/app-signing.html

编辑:正如@HandlerExploit所说 您的手机上仍然可以安装应用程序的“非市场版本/调试版本”,应用程序的调试版本始终使用默认调试签名进行签名。这个签名与市场上的签名不同。

答案 1 :(得分:2)

您很有可能在开发过程中使用计算机默认调试签名安装了应用程序,在安装新的市场版本之前,您需要将其卸载。

答案 2 :(得分:0)

不增加清单中的版本号也会产生这种影响。确保android:versionCode =" 1"每个版本都有所不同。还包括确切的错误消息(如果存在)可能会有所帮助。