TL;DR:如何在未签名的版本上安装已签名的apk?
我正在开发一款应用程序,它有大约150名用户。该应用程序不在Google Play上,我正在从我的网站上以apk的形式分发它。
它已经实现了检查更新的机制。当找到更新时,应用程序会显示对话框,其中包含要下载的按钮。点击后,apk被下载到下载文件夹,并意图调用该文件。
自从我开始开发这个应用程序以来,我学到了很多,现在我想使用apk签名。但我可以清楚地想象,在一个小对话框中向150名用户解释卸载和重新安装该应用程序的步骤会是多么痛苦。此外,他们的偏好将丢失(其中包括保存的用户名和密码(。
那么,有办法吗?如果没有,你有什么好的建议吗?
对用户来说,怎样才能最不痛苦呢?
您不能这样做。他们应该手动安装新的签名包,并在卸载之前/之后卸载以前的未签名版本。如果软件包名称相同,他们将被迫在新安装之前卸载未签名的软件包。
Android不支持安装未签名的APK,因此您分发给150名用户的APK必须已经签名。请参阅这篇文章,它明确地说:
在Android平台上运行的每个应用程序都必须由开发人员签名。
因此您有两个选项:
-
选项1:使用相同的密钥发布到Google Play。只要您发布具有更高版本代码的APK,您的用户就会不断收到更新。
-
选项2:使用新密钥发布到Google Play。您的用户将必须卸载,不幸的是,由于这是Android平台的基本安全功能,因此无法绕过它。