KeyStore和密钥别名

时间:2013-07-15 21:09:57

标签: android keystore

我正在导出应用程序,我对keystore和keyalias非常好奇。我不确定它们的用途是什么,或者我应该创建多少(每个应用程序可能有一个?)。我将不胜感激任何有关这些键的信息。感谢

1 个答案:

答案 0 :(得分:34)

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

编辑:开发人员网站的“App-Signing”部分实际上建议在所有应用中使用相同的证书

  

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

     

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

     

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