可以为多个应用程序使用相同的密钥库吗?

use*_*781 2 android cordova ionic-framework

当我们想要将应用程序发布到 Play 商店时,我们需要使用密钥库对我们的应用程序进行签名,密钥库可以通过如下方式生成:

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Run Code Online (Sandbox Code Playgroud)

那么,可以为多个应用程序使用相同的密钥库吗?

aug*_*rar 6

Android 开发者网站实际上建议使用相同的证书对所有应用程序进行签名:

\n
\n

您应该在应用程序的预期生命周期内使用相同的证书对所有应用程序进行签名。您应该这样做的原因有几个:

\n
    \n
  • 应用程序升级:当系统安装应用程序更新时,它会将新版本中的证书与现有版本中的证书进行比较。如果证书匹配,系统允许更新。如果使用不同的证书对新版本进行签名,则必须为应用程序分配不同的包名称\xe2\x80\x94,在这种情况下,用户将新版本安装为全新的应用程序。

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

    \n
  • \n
  • 通过权限共享代码/数据:Android 提供基于签名的权限实施,以便应用程序可以向使用指定证书签名的另一个应用程序公开功能。通过使用同一证书签署多个应用程序并使用基于签名的权限检查,您的应用程序可以以安全的方式共享代码和数据。

    \n
  • \n
\n
\n

然而,您应该对这个建议持保留态度。第一个要点仅适用于给定应用程序的更新版本,不适用于多个不相关的应用程序。仅当您希望不同的应用程序按所述紧密协作时,第二个和第三个要点才相关。

\n


Bud*_*ddy 5

如果它们是完全不相关的应用程序,我建议使用不同的密钥库。
如果您最终出售其中一款应用程序,您可以赠送相应的密钥库,而不会影响其他应用程序的安全性