2016-07-07 55 views
1

我们正在开发一款Android应用程序,并且我通过一个网站为我们的试用用户制作了一个apk。用户已启用“从未知来源安装”设置。该应用程序安装和工作正常。从外部来源更新apk应用程序的安卓应用程序

现在我上传了一个更新版本的应用程序。我们更改了apk包的版本号,新版本需要更多的手机权限,例如当第一个版本只需要完全网络访问时,阻止手机进入休眠状态。

当我下载并打开新的版本,它说:“你想更新安装到这个现有的应用程序...然后更新的应用程序将能够访问”,然后列出一个新的标签,所有下添加权限全部下的权限。

因此,安装程序确定这是一个更新,并且在附加权限方面发生了什么变化。

当我向前走的安装安装停止与信息“现有的包由同名冲突签名已安装”。

我必须做什么/更改才能升级现有的应用程序?

+0

你创造更新的APK新的密钥库? – Nitesh

+0

确保在创建apk时使用相同的生产密钥库。这可能是由于您尝试执行的门户。在Playstore中,它不会发生,期望密钥库是一样的。 – Stallion

回答

2

所有android apks都用一个键签名。即使调试构建。如果调试生成,IDE将自动为您生成密钥。您无法更新用另一个密钥签名的软件包的一个密钥签名的软件包。他们必须使用相同的密钥。如果您发出的调试版本不是在同一台机器上生成的,则可能使用两个密钥。

现在解决这个问题的唯一方法是让他们卸载并重新安装。然后制定一些关于使用什么关键的内部政策。为了防止在我的工作中我们都使用相同的调试密钥(我们有一个单独的释放密钥,所以我们不会意外上传一个调试版本)。

1

旧的应用程序有一个签名签名,但新的应用程序有一个签名的签名B.

通常情况下,也许你使用调试密钥库创建应用。如果是这样,这不是一件好事。但因为它是一个“未知来源”,所以它不是很重要。

其次,你可能创造出一台比旧的新版本,这意味着一个不同的密钥库调试使用。

密钥库用于检查生产者在应用程序的两次更新之间没有更改。这是一个安全的保护。

在您的具体情况,我建议你得到的是用于旧版本的调试密钥库,当你编译新版本中使用相同的。

调试密钥库位于计算机用户目录(可能是隐藏文件夹)中的.android目录中。

当心特定调试密钥库仅用于365天,在创建密钥库时开始使用。

如果您想避免此问题,请使用发布签名密钥。 https://developer.android.com/studio/publish/app-signing.html

相关问题