Android中的'debug.keystore'和'release.keystore'有什么区别?

时间:2014-02-19 12:11:21

标签: android android-maps-v2

最近,我正在使用Android Maps V2。我遇到了debug.keystorerelease.keystore。他们之间有什么区别?为什么我们必须同时使用它们?

7 个答案:

答案 0 :(得分:40)

Android构建过程会根据您用于构建应用程序的构建模式对应用程序进行不同的签名。

有两种构建模式:调试模式发布模式

在开发和测试应用程序时使用调试模式。

如果您要构建应用程序的发布版本,可以直接向用户分发或在Google Play等应用程序市场上发布,则可以使用发布模式。

在构建调试模式时,Android SDK构建工具使用Keytool实用程序(包含在JDK中)来创建调试密钥。由于SDK构建工具创建了调试密钥,因此他们知道调试密钥的别名和密码。每次在调试模式下编译应用程序时,构建工具都会使用调试密钥和Jarsigner实用程序(也包含在JDK中)来签署应用程序的.apk文件。由于别名和密码是SDK构建工具已知的,因此每次编译时,工具都不需要提示您输入调试密钥的别名和密码。

在构建发布模式时,您可以使用自己的私钥对应用程序进行签名。如果您没有私钥,可以使用Keytool实用程序为您创建一个私钥。在发布模式下编译应用程序时,构建工具使用您的私钥和Jarsigner实用程序来签署应用程序的.apk文件。由于您使用的证书和私钥是您自己的,因此您必须提供密钥库和密钥别名的密码。

使用带有ADT插件的Eclipse运行或调试应用程序时,调试签名过程会自动发生。将Ant构建脚本与debug选项一起使用时,也会自动进行调试签名。您可以使用Eclipse Export Wizard或修改Ant构建脚本并使用release选项构建来自动执行发布签名过程。

修改

使用android studio签署Android应用程序,请参阅此处

http://developer.android.com/tools/publishing/app-signing.html#releasemode

答案 1 :(得分:10)

  • debug.keystore 仅用于开发和测试目的,因此使用该功能时,您无法仅使用该应用将应用发布到 Google Play

    警告:使用调试证书签名时,不应向公众发布应用程序(通过任何来源)。

  • 仅当您要将应用发布到任何应用商店时,才需要
  • release.keystore
    有关详细信息,请参阅Signing Your Applications, subsection Signing in Release Mode

答案 2 :(得分:5)

您可以使用debug.keystore开发Android应用。当您的应用程序准备好作为Play商店中的应用程序提交时,将需要release.keystore

答案 3 :(得分:5)

您无法使用debug.keystore将您的应用发布到Google Play,并且用户将无法下载您的应用。

答案 4 :(得分:4)

debug.keystore在开发时使用,其中release.keystore将在产品发布时使用... link

答案 5 :(得分:3)

debug.keystore用于生成用于调试目的的Google Map API V2密钥。 release.keystore用于在将应用程序上传到Google Play之前生成地图密钥。

答案 6 :(得分:3)

debug.keystore 您为开发人员调用了测试目的,因为它包含默认别名和默认密钥密码,并且使用此密码,您无法将应用程序发布到Play商店。

release.keystore 您要求最终的应用认证密钥库。此密钥库具有自己的别名和自己的密钥密码。对于应用的每个新发布,您必须使用此密钥库生成签名的APK文件。

有关详细信息,请参阅 Signing Your Applications