提问者:小点点

KeyStore和密钥别名


我正在导出一个应用程序,我对密钥库和密钥别名非常好奇。我真的不确定它们是干什么的,或者我应该创建多少个(也许每个应用程序一个?)。如果有任何与这些密钥相关的信息,我将不胜感激。谢谢


共1个答案

匿名用户

这基本上是一种用你的应用来识别你自己的方法。有调试密钥和签名密钥,后者你需要将APK上传到Play商店并发布你的应用。密钥别名只是一个普通的名字,指向一个特定的证书。你可以为每个版本创建一个,或者为所有的应用程序使用同一个。我建议为每个应用程序创建一个,并确保备份多个副本。我喜欢保留3个,一个在我的系统上,一个在我的Dropbox里,另一个在外部的某个地方。如果您丢失了该密钥库文件,则绝对无法检索它或发布应用程序的未来版本。这个问题非常有用

编辑:开发者网站的“应用签名”部分实际上建议在所有应用程序中使用相同的证书

一般来说,所有开发人员的推荐策略是在应用程序的预期生命周期内使用相同的证书对所有应用程序进行签名。您应该这样做有几个原因……

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

应用程序模块化-如果应用程序提出请求,Android系统允许由相同证书签名的应用程序在同一进程中运行,以便系统将它们视为单个应用程序。通过这种方式,您可以将您的应用程序部署在模块中,如果需要,用户可以独立更新每个模块。通过权限共享代码/数据-Android系统提供基于签名的权限实施,以便应用程序可以向使用指定证书签名的另一个应用程序公开功能。通过使用相同的证书签署多个应用程序并使用基于签名的权限检查,您的应用程序可以以安全的方式共享代码和数据。