我在android上做了一个应用程序并在play store上发布了它。我用新的私钥签署了我的 apk。
上周,我想用我的新功能更新我的应用程序。所以我用之前创建的相同私钥导出了我的新 apk。然后我发布并Playstore接受了它。
但是在我手机的play store上,应用程序无法更新。我必须先卸载它,如果我这样做,我会丢失我的数据。
所以我的问题是,如何在 google play store 上制作可更新的 apk
我在android上做了一个应用程序并在play store上发布了它。我用新的私钥签署了我的 apk。
上周,我想用我的新功能更新我的应用程序。所以我用之前创建的相同私钥导出了我的新 apk。然后我发布并Playstore接受了它。
但是在我手机的play store上,应用程序无法更新。我必须先卸载它,如果我这样做,我会丢失我的数据。
所以我的问题是,如何在 google play store 上制作可更新的 apk
您无法更改上传到 Play 商店的 apk 的签名,您需要使用与以前相同的签名。如果您确实更改了应用程序的签名并尝试上传它,您将收到一条错误消息,提示您找到了相同的应用程序但签名不同。
如果您手动向用户发送具有更改签名的应用程序(例如邮件),他们必须先卸载当前应用程序,然后才能安装具有新签名的相同应用程序。用户这样做会丢失那里的应用程序数据!这是一种安全机制,因此黑客/坏人无法更改您的 apk 并以这种方式获取用户数据。
Android 系统使用签名来检查应用程序是否真的是手机上现有应用程序的更新。因为现在只有你自己的签名密码和其他东西,所以黑客无法在虚假应用更新中使用它。
摘要:始终使用相同的签名!
检查:http: //developer.android.com/tools/publishing/app-signing.html
编辑:正如@HandlerExploit 所说,您的手机上可能仍然安装了应用程序的“非市场版本/调试版本”,应用程序的调试版本始终使用默认调试签名进行签名。此签名与市场上的签名不同。
您很可能在开发过程中使用计算机默认调试签名安装了应用程序,您需要在安装新的市场版本之前将其卸载。
不增加清单中的版本号也会产生这种效果。确保 android:versionCode="1" 在每个版本中都不同。还包括确切的错误消息(如果存在)可能会有所帮助。