我已经陷入了一个有点烦人的Android密钥库文件的情况。目前我有几个不同的应用程序,每个应用程序使用不同的密钥库文件签名有点像这样:
每个密钥库为每个应用程序包含不同的名称和别名。
我现在知道以这种方式这样做有点傻,而且对我的所有应用程序使用单个密钥库文件会更好。我即将发布一个新的应用程序,所以这次我试图让它正确。
我的一般问题是,我怎样才能让将来的生活更轻松?
我读过我可以重命名其中一个密钥库并更改别名,所以理论上我可以使用现有的密钥库之一签署我的下一个应用程序?这意味着我的应用程序中至少有两个使用相同的密钥库,它将具有合理的名称。
编辑:作为参考,这是我今天阅读的教程之一:
http://blog.blundell-apps.com/tut-change-alias-passwords-of-your-android-keystore/
以及其他堆栈溢出答案: Can I change the alias of my key?
我从教程中了解到,我可以安全地重命名密钥库文件,更改密码并重命名别名,而无法更新现有应用程序。任何人都可以确认这是真的,还是有某种方式我可以证明它?
最后,我有一个第三个密钥库我想合并到另一个密码库中,如果可能的话?理想情况下,我想最终只为所有3个应用程序提供一个密钥库。我知道这可能会推动它,但无论如何我都会问。
显然,我不想放弃更新现有应用的能力。
答案 0 :(得分:5)
是您可以将来自不同密钥库的所有密钥合并为一个。与不需要管理不同的密钥库相比,您也可以更改密钥的别名,密钥的密码,甚至是现有密钥的新密钥库。
您需要先导出所有密钥,然后导入目标密钥库。
请记住,每个密钥仍然可以使用不同的密码。 密钥库密码与密钥密码分开。
答案 1 :(得分:4)
<强> [编辑] 强>
现在有可能。使用KeyStore Explorer
[旧答案跟随]
AFAIK,否。密钥库通常用于标识开发人员(或应用程序发布者)。如果您使用了多个密钥库,则必须立即保护它们,以便现在维护这些应用程序。
从现在开始,选择一个密钥库并在其中维护多个别名以用于不同的应用程序。
参考:http://developer.android.com/tools/publishing/app-signing.html
答案 2 :(得分:0)
您可以使用keytool -export
将密钥从旧密钥库导出到文件中,然后使用keytool -import
导入另一个密钥库,应用新别名或与以前相同。有关命令行的详细信息,请参见keytool的手册页。
我需要download全新的Java运行时才能获得可以打开最近的密钥库的密钥工具版本。