这是一个普遍的问题,但是我对它在 Android 中的应用特别感兴趣。什么是密钥存储库文件,它的用途是什么?
多个 Android 应用程序是否可以使用相同的密钥存储库对其应用程序进行签名(“签名”一个。Apk?)以及其中的含义(如果有的话)是什么?
Keytool 的全部思想就是在你的 apk 上签上一个唯一标识符,指出这个 apk 的来源。密钥存储库文件(据我所知)用于调试,因此您的 apk 具有密钥工具的功能,而无需为生产签名。因此,出于调试的目的,您应该能够用一个密钥存储库对多个 apk 进行签名。但是要明白,在推向生产阶段之后,您将需要唯一的密钥工具作为您创建的每个 apk 的标识符。
你可以在官方的 Android 文档中找到更多关于签名过程的信息: http://developer.android.com/guide/publishing/app-signing.html
是的,您可以使用相同的密钥存储库签名多个应用程序。但是您必须记住一件重要的事情: 如果您在 Play Store 上发布了一个应用程序,那么您必须使用非调试证书对其进行签名。如果有一天你想发布这个应用程序的更新,用于签署 apk 的密钥存储库必须是相同的。否则,您将无法发布更新。
Android Market 要求您使用公钥/私钥机制(该证书使用您的私钥签名) ,用证书签名所有发布的应用程序。这提供了一个安全层,防止远程攻击者将恶意更新推向市场(所有更新必须使用相同的密钥签名)。
来自 Android 开发者网站的 应用程式签署指南:
一般来说,建议所有开发人员采用的策略是在应用程序的预期生命周期内使用相同的证书签署所有应用程序。有几个原因你应该这样做..。
使用相同的密钥有一些好处——其中之一是使用相同的密钥签名的应用程序之间更容易共享数据。另一个原因是它允许使用相同密钥签名的多个应用程序在同一进程中运行,这样开发人员就可以构建更多的“模块化”应用程序。
我提供的答案是,密钥存储库文件是向提出要求的任何人验证您的身份。不仅仅是签字。Apk 文件,您可以使用它来存储个人证书,签名数据传输和各种各样的身份验证。
至于你在 Android 上用它做什么,以及你提到签署 apk 之后可能正在寻找什么,它就是你的证书。您正在使用凭据为应用程序打上品牌。您可以使用相同的密钥标记多个应用程序,事实上,建议您使用一个证书标记您编写的多个应用程序。更容易跟踪哪些应用程序属于您。
我不知道你说的暗示是什么意思。我想这意味着除了您的证书持有者之外,没有人可以更新您的应用程序。这意味着,如果您将它发布到野外,丢失了您用于签署应用程序的证书,那么您就不能发布更新,因此要保证证书的安全,并在需要时进行备份。
但是,除了签名 apks 发布到野外,您还可以使用它通过 SSL 向服务器验证您的设备,如果您愿意的话,还可以使用其他功能(也与 Android 相关)。