使用相同的密钥签署两个应用程序

Luk*_*kap 9 android signing google-play

我构建了两个应用程序第一个应用程序com.pakname.pak1和第二个用com.pakname.pak2包名称,然后我有一个键mykey.keystore.

如果我使用相同的密钥签署这两个应用程序并将它们发布到Android市场会发生什么?

这是个好习惯吗?我想不是,但我没有得到用不同的密钥从同一家公司签署应用程序的重点.

谁能解释我这种情况

谢谢

rfs*_*010 15

读这个

签署策略

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

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

  • 应用程序升级 - 在您发布应用程序更新时,如果希望用户无缝升级到新版本,则需要使用相同的证书或证书集继续对更新进行签名.当系统正在为应用程序安装更新时,它会将新版本中的证书与现有版本中的证书进行比较.如果证书完全匹配,包括证书数据和订单,则系统允许更新.如果在不使用匹配证书的情况下签署新版本,则还需要为应用程序分配不同的包名称 - 在这种情况下,用户将新版本安装为全新的应用程序.

  • 应用程序模块化 - 如果应用程序请求,Android系统允许由同一证书签名的应用程序在同一进程中运行,以便系统将它们视为单个应用程序.通过这种方式,您可以在模块中部署应用程序,用户可以根据需要独立更新每个模块.

  • 通过权限共享代码/数据.Android系统提供基于签名的权限实施,以便应用程序可以将功能公开给使用指定证书签名的另一个应用程序.通过使用相同证书对多个应用程序进行签名并使用基于签名的权限检查,您的应用程序可以以安全的方式共享代码和数据.

  • 也意识到使用多个应用程序相同的证书缺点:如果你只想你的应用程序中的一个卖给别人(源+代码+资源+证书),您将得到拧:你将"被迫"出售您的证书使新的应用程序所有者可以升级(否则,他就失去了你当前所有用户,这应该是可悲的,因为应用程序是值得购买的),因此,这意味着您的其他应用的坏话......此外,第一这个答案中的项目(项目符号#1)不是关于"N个应用程序的1个证书",而是"1个证书,用于特定应用程序的所有更新". (12认同)