管理 Android 个密钥库

Managing Android keystores

应该如何管理 Android 密钥库?将所有应用程序的所有密钥存储在一个密钥库中是否可以,或者每个应用程序应该有一个密钥库?对您的密钥库使用版本控制有什么意义吗?

通常您只有一个密钥库用于签署所有应用程序;您基本上是 "marking" 所有具有您凭据的应用程序。 post 提供了很多有价值的信息:Android: What is a keystore file, and what is it used for?

Android 开发者网站还提供了一篇非常有价值的文章,其中讨论了密钥库、如何签署您的应用程序以及各种其他注意事项:http://developer.android.com/tools/publishing/app-signing.html

您绝对应该只有一个密钥库来保存您的所有密钥,因为它更易于管理,而且除了密钥库的密码外,所有密钥都有自己的密码。真正的问题是:您应该为每个应用程序创建一个密钥,还是使用一个密钥为所有应用程序签名?正如this answer, there's some pros to signing all your apps with the same key, namely: apps signed with the same key can run in the same process and share data seamlessly (see android docs中提到的那样)。

关于您的版本控制问题,您绝对需要备份您的密钥库!如果您丢失了密钥库,您将无法再在 Google Play 商店中为您的应用程序更新签名!您的密钥库二进制文件不应经常更改(除非您要添加密钥),但私有 git 存储库是用您的项目之一备份密钥库的好地方。不要使用版本控制,但如果它是开源存储库(例如免费 github)或者您有不能信任密钥库的团队成员(例如短期承包商)。否则,找个安全的地方备份就好了。