【发布时间】:2015-01-28 10:55:45
【问题描述】:
应如何管理 Android 密钥库?是否可以将所有应用程序的所有密钥存储在一个密钥库中,或者每个应用程序有一个密钥库?对密钥库使用版本控制有什么意义吗?
【问题讨论】:
应如何管理 Android 密钥库?是否可以将所有应用程序的所有密钥存储在一个密钥库中,或者每个应用程序有一个密钥库?对密钥库使用版本控制有什么意义吗?
【问题讨论】:
您绝对应该只有一个密钥库来保存所有密钥,因为它更易于管理,而且除了密钥库的密码之外,所有密钥都已经有自己的密码。真正的问题是:您应该为每个应用程序创建一个密钥,还是使用一个密钥为所有应用程序签名?正如this answer 中提到的,使用相同密钥为所有应用签名有一些优点,即:使用相同密钥签名的应用可以在同一进程中运行并无缝共享数据(参见android docs)。
关于您的版本控制问题,您绝对需要备份您的密钥库!如果您丢失了密钥库,您将无法再在 Google Play 商店中为您的应用程序签署更新!您的密钥库二进制文件不应该经常更改(除非您要添加密钥),但是私有 git 存储库是使用您的项目之一备份密钥库的好地方。不要使用版本控制,但如果它是开源存储库(例如免费 github)或者您的团队成员无法信任密钥库(例如短期承包商)。否则,只需找到一个安全的地方进行备份即可。
【讨论】:
通常您只有一个密钥库用于签署所有应用程序;您实际上是在使用您的凭据“标记”所有应用程序。这篇文章提供了很多有价值的信息:Android: What is a keystore file, and what is it used for?
Android 开发者网站还提供了一篇非常有价值的文章,其中讨论了密钥库、如何为您的应用程序签名以及各种其他注意事项:http://developer.android.com/tools/publishing/app-signing.html
【讨论】: