我可以将多个Android密钥库文件合并为一个吗?

时间:2014-02-18 07:39:17

标签: android keystore keytool android-keystore

我已经陷入了一个有点烦人的Android密钥库文件的情况。目前我有几个不同的应用程序,每个应用程序使用不同的密钥库文件签名有点像这样:

  • AppName1.apk使用AppName1.keystore
  • 签名
  • AppName2.apk使用AppName2.keystore
  • 签名
  • AppName3.apk使用AppName2.keystore
  • 签名

每个密钥库为每个应用程序包含不同的名称和别名。

我现在知道以这种方式这样做有点傻,而且对我的所有应用程序使用单个密钥库文件会更好。我即将发布一个新的应用程序,所以这次我试图让它正确。

我的一般问题是,我怎样才能让将来的生活更轻松?

我读过我可以重命名其中一个密钥库并更改别名,所以理论上我可以使用现有的密钥库之一签署我的下一个应用程序?这意味着我的应用程序中至少有两个使用相同的密钥库,它将具有合理的名称。


编辑:作为参考,这是我今天阅读的教程之一:

http://blog.blundell-apps.com/tut-change-alias-passwords-of-your-android-keystore/

以及其他堆栈溢出答案: Can I change the alias of my key?

我从教程中了解到,我可以安全地重命名密钥库文件,更改密码并重命名别名,而无法更新现有应用程序。任何人都可以确认这是真的,还是有某种方式我可以证明它?


最后,我有一个第三个密钥库我想合并到另一个密码库中,如果可能的话?理想情况下,我想最终只为所有3个应用程序提供一个密钥库。我知道这可能会推动它,但无论如何我都会问。

显然,我不想放弃更新现有应用的能力。

3 个答案:

答案 0 :(得分:5)

是您可以将来自不同密钥库的所有密钥合并为一个。与不需要管理不同的密钥库相比,您也可以更改密钥的别名,密钥的密码,甚至是现有密钥的新密钥库。

您需要先导出所有密钥,然后导入目标密钥库。

请记住,每个密钥仍然可以使用不同的密码。 密钥库密码与密钥密码分开。

使用KeyStore Explorer

答案 1 :(得分:4)

<强> [编辑]

现在有可能。使用KeyStore Explorer

[旧答案跟随]

AFAIK,否。密钥库通常用于标识开发人员(或应用程序发布者)。如果您使用了多个密钥库,则必须立即保护它们,以便现在维护这些应用程序。

从现在开始,选择一个密钥库并在其中维护多个别名以用于不同的应用程序。

参考:http://developer.android.com/tools/publishing/app-signing.html

答案 2 :(得分:0)

您可以使用keytool -export将密钥从旧密钥库导出到文件中,然后使用keytool -import导入另一个密钥库,应用新别名或与以前相同。有关命令行的详细信息,请参见keytool的手册页。

我需要download全新的Java运行时才能获得可以打开最近的密钥库的密钥工具版本。