【问题标题】:I have never set any passwords to my keystore and alias, so how are they created?我从未为我的密钥库和别名设置任何密码,那么它们是如何创建的?
【发布时间】:2013-09-06 12:50:47
【问题描述】:

当我浏览互联网上的一些帖子以了解更多关于签署你的 Android 应用程序的信息时,我收到了诸如如何签署应用程序之类的帖子,以及一些关于 如果您丢失了密钥库文件或密码怎么办。

我在这里要问的问题是,我从来没有创建过密钥库,或者它的别名,或者它的密码,那么我到底怎么能忘记它呢?

我知道对于Android,我们使用密码android,那么,如果密码默认为android,怎么会忘记呢? (我确信必须有其他方法来创建新的密钥库)。

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

【问题讨论】:

    标签: android keytool android-keystore


    【解决方案1】:

    在调试模式下登录

    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 > Preferences > Android > Build。)

    注意:使用调试证书签名后,您不能向公众发布您的应用程序。

    来源: Developer.Android

    【讨论】:

    • 这非常有用。接受它作为答案。先生还有一个问题。一个keystore有很多key还是keystore和key是一回事?
    • 一个密钥库可能有很多密钥,您必须为密钥创建不同的别名,我认为现在很明显密钥和密钥库之间的区别。密钥库是密钥的容器
    • 我用它来签署一个我无法安装的未签名 apk:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore my_unsigned.apk androiddebugkey 谢谢
    • @user2730944 能否请您庆祝一下您是如何找出密码是“android”的,因为您提供的来源并不明显?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      当我们在 Eclipse 中运行应用程序时,apk 生成的默认签名是由 android 提供的 Keystore。

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

      默认别名是

      androiddebugkey
      

      【讨论】:

      • 感谢您的回答,但知道密钥的密码是什么,因为密钥库的密码是“android”(如果我没记错的话)
      • @AnasAzeem 看到我的回答
      【解决方案4】:
      Keystore name: "debug.keystore"
      
      Keystore password: "android"
      
      Key alias: "androiddebugkey"
      
      Key password: "android"
      

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

      【讨论】:

        【解决方案5】:

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

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

        这样您就不需要知道debug.keystore 在哪里,该应用程序适用于所有团队,即使有人使用不同的环境。

        【讨论】:

        • 太棒了!这是使 debugProguard 构建类型可安装的简洁方法。
        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-10
          • 2016-07-13
          • 2011-06-23
          • 1970-01-01
          相关资源
          最近更新 更多