【问题标题】:How to change keystore of a application in android如何在android中更改应用程序的密钥库
【发布时间】:2012-01-13 00:16:51
【问题描述】:
我正在为我的客户开发一个现有的 android 项目。我在他的申请中做了一些修改。我正在研究日食。
发送apk后,他将其安装在手机上,但他抱怨:
Current application failed install, even after it told me it was going to
overwrite my old application information. Please remember to change keystore.
让我知道如何使用 eclipse 更改密钥库,这样它就不会安装在他的手机上。请解释一下。
谢谢,
普拉文
【问题讨论】:
标签:
android
android-layout
android-emulator
【解决方案1】:
Eclipse 使用的默认 Keysotre 位于 /.android/debug.keystore 的主目录中。
如果你想同时更新一个应用程序,新的和旧的 Apk 必须使用相同的密钥签名。
因此,您首先需要弄清楚您的客户端使用了哪个密钥库。
请注意,debug.keystore 在每台机器上都是唯一的。
【解决方案2】:
每个 .apk 文件都应该使用一个密钥签名(通过安装 SDK,您可以获得一个调试密钥)。密钥是唯一的,如果设备中安装了这样的包,系统会检查apk文件的密钥,看密钥是否与已有的相同。如果密钥不匹配,则无法安装 .apk 文件,除非您卸载了原始文件。
现在,我想你可能有几个选择:
- 使用您自己的密钥签署 apk,并要求您的客户端卸载旧的。
- 使用您自己的密钥签署 apk 并更改包名称。
- 获取您客户的密钥并用它签署 apk。
出于安全原因,您的客户可能不会将他的密钥提供给您。我认为最好的选择是在发布模式下编译你的项目,然后让你的客户用他的私钥对其进行签名。 See here.