Android APK证书 – 需要什么字段,以及如果该信息发生了变化?

这似乎很基本,但我无法find我正在寻找的任何信息,特别是有关Android应用程序。

我正在创build我的释放密钥(自签名),并要求我提供大量信息:

  • 姓名:(好的,不太可能改变)
  • 组织单位:(这是“企业名称”?)
  • 组织:(与上面的“单位”有什么不同?)
  • 城市或地区:(这可能会改变…)
  • 州或省:(也可能改变…)
  • 国家代码(XX):( OK;不太可能改变)

考虑到这一点,我有两个有关用于分发Android应用程序的自签名证书的基本问题:

  1. 在创作时,我可以离开这些领域中的任何一个,尤其是那些可能改变的领域吗? 或者是被禁止的? (这个大问题)
  2. 如果我想稍后改变给定的字段呢? 这是否意味着创build一个新的密钥,并让每个人重新安装应用程序,以便再次升级,即使我有原始密钥? (看来是这样,从我发现的很less的判断来看)。

提前致谢!


编辑:上面#1的更多信息:如果这是类似SSL证书,那么名称,组织和国家应该是足够的。 但是,这是什么情况? 任何/所有其他领域的优缺点是空白的? 我不能是唯一一个在应用程序方面对此感到疑惑的人,而迄今为止我阅读的Android文档并没有帮助我们澄清这一点。

对于#2,看起来更改证书意味着重新生成证书,而使用新的证书进行签名并不能避免市场问题(即使您使用新旧证书签名,它就像是一个全新的应用程序)。 因此,在您第一次签署应用程序时,更正确地做到这一点非常重要(在移动的情况下应该具有足够的通用性)。

这些领域的内容实际上是非常不相关的,除了你以外,任何人都不会看到这些内容。 您可以在任何keytool允许的地方留下空的字段,而不会在以后出现。

一旦您使用密钥库对apk进行签名并将其上传到Android电子市场,则无法使用另一个密钥库对同一个软件包进行签名。 这显然是为了防止别人用另一个replace你的应用程序。

对于我的密钥库,我把我的个人信息放在其中,将到期date设置为将来的999年,并保持安全并备份。

要严格回答有关哪些字段是可选的问题:实际上, 所有字段都是可选的。 唯一的要求是你提供至less一个(即使只是国家代码)。

这里是Android Studio的解释: Android Studio显示错误消息

它写道:

至less有一个证书颁发者字段被要求是非空的

果然,通过一些testing,我确认只需要一个字段。

正如Michael回答的,一旦你的应用发布了,你永远不能改变它