8

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

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

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

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

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

应用程序是否有其他方法可以支持不同的证书,并且有两个或多个实体对其进行签名?

4

2 回答 2

2

我找到了一个解决方案,虽然不是那么漂亮,但仍然是一个解决方案。

一个签名的 apk 文件包括:

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

要拥有一个包含多个证书的 apk:

  • 各方签署apk
  • 收集每个apk的META-INF内容
  • 创建一个新的 apk(这只是一个 zip 文件)并且 META-INF 文件夹包含所有证书

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

请注意,不可能在更新中添加证书。

于 2010-04-30T08:41:16.430 回答
2

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

这将在 META-INF 文件夹中创建不同的文件。我不知道对 android 市场内部的更新过程有什么影响。

于 2011-03-08T12:41:56.367 回答