【问题标题】:What all am I supposed to use the keystore for regarding apps?我应该将密钥库用于哪些应用程序?
【发布时间】:2017-06-13 04:20:55
【问题描述】:
在 Android 中,要创建应用程序的发布版本,您需要制作签名的 APK,这需要一个密钥库文件,该文件以某种方式证明该文件是您的。
您是否只是无限期地将此密钥库用于您的所有应用程序?或者您是否需要为每个应用程序创建一个新的密钥库?每种口味?目的/正确用法是什么?
【问题讨论】:
标签:
android
authentication
google-play-services
keystore
【解决方案1】:
正如thread 中所述,您可以为任意数量的应用程序使用相同的密钥库。
同样基于此documentation,您应该在应用的预期生命周期内使用相同的证书对所有 APK 进行签名。您应该这样做有几个原因:
-
应用升级:系统在安装应用更新时,会将新版本中的证书与现有版本中的证书进行比较。如果证书匹配,系统将允许更新。如果您使用不同的证书签署新版本,则必须为应用分配不同的包名称 - 在这种情况下,用户将新版本安装为全新的应用。
-
应用程序模块化:如果应用程序请求,Android 允许由相同证书签名的 APK 在同一进程中运行,以便系统将它们视为单个应用程序。通过这种方式,您可以将应用部署在模块中,并且用户可以独立更新每个模块。
-
通过权限共享代码/数据:Android 提供基于签名的权限强制执行,以便应用可以向使用指定证书签名的另一个应用公开功能。通过使用相同的证书签署多个 APK 并使用基于签名的权限检查,您的应用可以以安全的方式共享代码和数据。
其他参考资料: