我从未为我的密钥库和别名设置任何密码,那么如何创建它们?


137

当我浏览互联网上的一些帖子时,了解有关对Android应用程序进行签名的更多信息,我得到了如何对应用程序进行签名的信息,以及有关丢失密钥库文件或密码的信息。

我要问的问题是,我从未创建过密钥库或其别名或密码,那么在这个世界上我怎么会忘记它呢?

我知道,对于Android,我们使用密码android,因此,如果默认情况下密码是android,怎么会忘记它?(我确定必须有其他方法来创建新的密钥库)。

最后,如果android是默认密码,默认别名是什么?

Answers:


409

在调试模式下登录

Android构建工具提供了一种调试签名模式,使您可以更轻松地开发和调试应用程序,同时仍然满足Android系统对APK进行签名的要求。使用调试模式构建应用时,SDK工具会调用Keytool来自动创建调试密钥库和密钥。然后,使用此调试密钥自动对APK进行签名,因此您无需使用自己的密钥对软件包进行签名。

SDK工具使用预定的名称/密码创建调试密钥库/密钥:

Keystore name: "debug.keystore"
Keystore password: "android"
Key alias: "androiddebugkey"
Key password: "android"
CN: "CN=Android Debug,O=Android,C=US"

如有必要,您可以更改调试密钥库/密钥的位置/名称,或提供要使用的自定义调试密钥库/密钥。但是,任何自定义调试密钥库/密钥都必须使用与默认调试密钥相同的密钥库/密钥名称和密码(如上所述)。(要在Eclipse / ADT中执行此操作,请转至Windows>首选项> Android>构建。)

注意:使用调试证书签名后,您无法将应用程序公开发布。

资料来源: Developer.Android


那是非常有益的。接受它作为答案。先生,还有一个问题。单个密钥库是否具有许多密钥,或者密钥库和密钥是同一事物?
Anas Azeem

密钥库可能有很多密钥,您将不得不为密钥创建不同的别名,我认为现在很明显密钥和密钥库之间的区别。密钥库是密钥的容器

我用它来签名无法安装的未签名apk:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore〜/ .android / debug.keystore my_unsigned.apk androiddebugkey谢谢
Ivan Morgillo 2014年

@ user2730944能否请您庆祝一下您如何发现“ android”密码,因为您提供的来源不明显?
spin_eight 2015年

22

如果您想在gradle中配置它们,它应该看起来像

signingConfigs {
        debug {
            storeFile file('PATH_TO_HOME/.android/debug.keystore')
            storePassword 'android'                   
            keyAlias 'AndroidDebugKey'
            keyPassword 'android'                     
        }
        ...
}

3

当我们在eclipse中运行应用程序时,默认情况下,generate是sign由Android提供的Keystore。

但是,如果要在Play商店上载应用程序,则需要创建自己的密钥库。Eclipse已经提供了GUI界面来创建新的密钥库。您还可以通过命令行创建密钥库。

默认别名是

androiddebugkey

感谢您的回答,但是您知道密钥的密码是什么,因为密钥库的密码是“ android”(如果我没记错的话)
Anas Azeem 2013年

@AnasAzeem看到我的回答

3
Keystore name: "debug.keystore"

Keystore password: "android"

Key alias: "androiddebugkey"

Key password: "android"

我使用此信息并成功生成Signed APK。


2

比所有选项更好,您可以将自己signingConfig设置为等于debug.signingConfig。为此,您只需要执行以下操作:

android {
  ...
  buildTypes {
    ...
    wantedBuildType {
      signingConfig debug.signingConfig
    }
  }
}

这样debug.keystore,即使有人使用其他环境,您也不需要知道应用程序在哪里,该应用程序即可为所有团队使用。


优秀的!这是使debugProguard构建类型可安装的简洁方法。
Jerry101 '16

1

所有这些答案,仍然只有一个失踪。在开发者控制台的Google API部分中创建身份验证凭据时,请确保(尤其是您的第一个)(尤其是您的第一个)单击了“同意屏幕”选项。如果您没有“标题”,并且填写了其他任何必填字段,则该选项将失败。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.