用多个证书签署申请

从https://developer.android.com/studio/publish/index.html上的签名文档:

当系统正在安装应用程序的更新时,如果新版本中的任何证书都与旧版本中的任何证书相匹配,则系统允许更新。

这表示应用程序可以使用多个证书进行签名。

这是一个有趣的选项,允许多个实体签署一个应用程序。 例如:最初由设备制造商签名的系统应用程序。 进一步的更新可以由开发者签署。

我误读了文档还是这真的有可能? 如果是这样,怎么样?

是否有任何其他的方式来支持不同的证书的应用程序,有两个或更多的实体签署?

如果在签名过程中使用不同的别名,则可以使用不同的证书签名。

这将在META-INF文件夹内创build不同的文件。 我不知道安卓市场内的更新过程有什么影响。

我find了一个解决scheme,不是那么漂亮,而是一个解决scheme。

已签名的apk文件包含:

  • 用给定证书签名的文件
  • 具有公共证书密钥的META-INF文件夹

要有一个apk与多个证书:

  • 每个党签署apk
  • 收集每个apk的META-INF内容
  • 一个新的apk(这只是一个zip文件)被创build,META-INF文件夹包含所有的证书

这将允许任何签署方更新apk。

一个注意,在更新中添加证书是不可能的。