我有一个小小的澄清。我有以下问题,
1.是否每次正常构建项目时都使用debug.keystore来生成apk?
2.我已完成解压缩生成的apk文件。我来看看META-INF文件夹中有证书。是否使用debug.keystore生成这些证书以识别系统标识?因为,两个SHA1哈希值在debug.keystore和unzipped apk的cert.RSA中相同。
请澄清这个疑问。
提前致谢..
答案 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
中定义