发布密钥以签署多个Android应用程序

Dev*_*Con 2 android signing key

你可以使用一个my-release-key.keystore来签署不同的应用程序,还是需要为每个应用程序使用不同的my-release-key.keystore?

Raw*_*ode 5

这是从Android文档直接解除的 - 重要的一点.

应用程序签名的某些方面可能会影响您开发应用程序的方式,尤其是在您计划发布多个应用程序时.

通常,所有开发人员的建议策略是在应用程序的预期生命周期内使用相同的证书对所有应用程序进行签名.您应该这样做有几个原因:

  • 应用程序升级 - 在您发布应用程序更新时,如果希望用户无缝升级到新版本,则需要使用相同的证书或证书集继续对更新进行签名.当系统正在为应用程序安装更新时,它会将新版本中的证书与现有版本中的证书进行比较.如果证书完全匹配,包括证书数据和订单,则系统允许更新.如果在不使用匹配证书的情况下签署新版本,则还需要为应用程序分配不同的包名称 - 在这种情况下,用户将新版本安装为全新的应用程序.
  • 应用程序模块化 - 如果应用程序请求,Android系统允许由同一证书签名的应用程序在同一进程中运行,以便系统将它们视为单个应用程序.通过这种方式,您可以在模块中部署应用程序,用户可以根据需要独立更新每个模块.
  • 通过权限共享代码/数据 - Android系统提供基于签名的权限实施,以便应用程序可以将功能公开给使用指定证书签名的另一个应用程序.通过使用相同证书对多个应用程序进行签名并使用基于签名的权限检查,您的应用程序可以以安全的方式共享代码和数据.

文档