android中的debug.keystore有什么用?

时间:2015-01-08 11:07:43

标签: android eclipse security

我有一个小小的澄清。我有以下问题,

1.是否每次正常构建项目时都使用debug.keystore来生成apk?

2.我已完成解压缩生成的apk文件。我来看看META-INF文件夹中有证书。是否使用debug.keystore生成这些证书以识别系统标识?因为,两个SHA1哈希值在debug.keystore和unzipped apk的cert.RSA中相同。

请澄清这个疑问。

提前致谢..

2 个答案:

答案 0 :(得分:4)

您要在设备上安装的每个apk都需要签名。调试密钥只是您第一次使用它时构建工具随机生成的证书,它在构建调试版本时自动用于签名。否则与您在Play商店中发布的证书基本上没有区别(当然,忽略它使用错误的个人信息和固定密码的事实)

再次:如果您构建为调试,则使用调试密钥库,否则,如果要创建版本,则必须创建自己的密钥库并将构建脚本指向它。

有关Google文档的更多信息:http://developer.android.com/tools/publishing/app-signing.html

  

在调试模式下,使用生成的调试证书对应用程序进行签名   Android SDK工具。此证书具有已知的私钥   密码,因此您无需键入即可运行和调试应用程序   每次更改项目时都会输入密码。

     

Android Studio会在您运行时自动以调试模式签署您的应用   或者从IDE调试项目。

     

您可以在模拟器上运行和调试以调试模式签名的应用程序   在通过USB连接到您的开发机器的设备上,但是您   无法分发以调试模式签名的应用程序。

     

默认情况下,调试配置使用调试密钥库,其中包含   已知密码和具有已知密码的默认密钥。调试   keystore位于$ HOME / .android / debug.keystore中,并已创建   如果没有。调试构建类型设置为使用此调试   SigningConfig自动。

作为一个额外的专业提示:如果您在拥有不同共享测试设备的团队中开发,如果您共享相同的调试密钥库,则会节省大量时间,否则您始终需要卸载从另一个dev获取测试设备时调试应用程序

答案 1 :(得分:1)

您无法更新没有相同密钥库值的应用程序,否则应用程序会显示不同的签名。 例如,如果更新到应用程序,您会在几天后从Playstore安装应用程序,那么只有在其签名和新应用程序签名相同的情况下,您才能更新以前的应用程序。此签名在debug.keystore

中定义