如何创建密钥库?

时间:2010-10-22 14:23:00

标签: android eclipse keystore

为android创建密钥库的步骤(在eclipse环境中)? 我需要在我的应用程序中使用谷歌地图,我不知道我错过了哪些步骤。 请向我提供具体的详细步骤(我从指南中了解不到)。

11 个答案:

答案 0 :(得分:452)

要回答标题中的问题,可以使用Java Keytool实用程序创建一个密钥库,该实用程序随任何标准JDK分发一起提供,位于%JAVA_HOME%\bin。在Windows上,这通常是C:\Program Files\Java\jre7\bin

因此,在Windows上,打开命令窗口并切换到该目录并输入如下命令

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

Keytool会提示您提供密钥库的密码,提供专有名称字段,然后提供密钥的密码。然后,它会将密钥库生成为您所在目录中名为my-release-key.keystore的文件。密钥库和密钥受您输入的密码保护。密钥库包含一个密钥,有效期为10000天。别名是您稍后将使用的名称,用于在签署应用程序时引用此密钥库。

有关Keytool的详细信息,请参阅以下文档:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

有关签署Android应用的更多信息,请访问:http://developer.android.com/tools/publishing/app-signing.html

答案 1 :(得分:130)

在Android Studio中签署您的应用

要在Android Studio中以发布模式签署您的应用,请按以下步骤操作:

  

1-在菜单栏上,单击Build>生成签名APK。


  

2 - 在Generate Signed APK Wizard窗口中,单击Create new以创建新的密钥库。   如果您已有密钥库,请转到步骤4.


  

3-在New Key Store窗口中,提供所需信息,如图所示   您的密钥有效期至少为25年,因此您可以在应用程序的生命周期内使用相同的密钥对应用更新进行签名。

enter image description here

  

4-在Generate Signed APK Wizard窗口中,选择一个密钥库,一个私钥,然后输入两者的密码。然后单击“下一步”。enter image description here

     

5-在下一个窗口中,选择已签名APK的目的地,然后单击“完成”。   enter image description here

全球化志愿服务青年

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

答案 2 :(得分:84)

我很想看如何在shell中使用单行命令生成.keystore,所以我可以从另一个应用程序运行它。这就是:

echo y | keytool -genkeypair -dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" -alias business -keypass kpi135 -keystore /working/android.keystore -storepass ab987c -validity 20000
  • dname 是.keystore中应用程序的唯一标识符

    • cn 生成.keystore的个人或组织的全名
    • ou 创建项目的组织单位,它是创建项目的组织的细分。防爆。 android.google.com
    • o 整个项目的组织所有者。它的范围比 ou 更高。例如:google.com
    • c 国家/地区短代码。例如:美国是"美国"
  • 别名。应用程序的标识符作为.keystore中的单个实体(可以有很多)

  • keypass 用于保护该特定别名的密码。
  • 密钥库应创建 .keystore 文件的路径(标准扩展名实际为.ks
  • storepass 用于保护整个 .keystore 内容的密码。
  • 有效期使用此 .keystore
  • ,应用程序有效的天数

它对我来说非常好用,它不会在控制台中要求任何其他内容,只需创建文件即可。有关详细信息,请参阅keytool - Key and Certificate Management Tool

答案 3 :(得分:63)

从命令行创建密钥库文件:

  1. 打开命令行:

    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved
    
    // (if you want to store keystore file at C:/ open command line with RUN AS ADMINISTRATOR)
    
    C:\Windows\system32> keytool -genkey -v -keystore [your keystore file path]{C:/index.keystore} -alias [your_alias_name]{index} -keyalg RSA -keysize 2048 -validity 10000[in days]
    
  2. 输入>它会提示您输入密码>输入密码(它将不可见)

    Enter keystore password:
    Re-enter new password:
    
  3. 输入>它会询问你的详细信息。

    What is your first and last name?
     [Unknown]:  {AB} // [Your Name / Name of Signer] 
    What is the name of your organizational unit?
     [Unknown]:  {Self} // [Your Unit Name] 
    What is the name of your organization?
     [Unknown]:  {Self} // [Your Organization Name] 
    What is the name of your City or Locality?
     [Unknown]:  {INDORE} // [Your City Name] 
    What is the name of your State or Province?
     [Unknown]:  {MP} //[Your State] 
    What is the two-letter country code for this unit?
     [Unknown]:  91
    
  4. 输入>输入Y

    Is CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91 correct?
    [no]:  Y
    
  5. 输入>再次输入密码。

    Generating 2,048 bit RSA key pair and self-signed certificate    (SHA256withRSA) with a validity of 10,000 days
        for: CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91
    Enter key password for <index> (RETURN if same as keystore password):
    Re-enter new password:
    
  6.   

    [存储C:/index.keystore]

    1. 你完成了!!!
    2. 在Eclipse中导出:

      使用您创建的密钥库文件将您的android软件包导出到.apk

      1. 右键单击要导出的包,然后选择导出 enter image description here

      2. 选择导出Android应用程序&gt;下一个 enter image description here

      3. 接下来
        enter image description here

      4. 选择使用现有密钥库&gt;浏览.keystore文件&gt;输入密码&gt;下一个 enter image description here

      5. 选择别名&gt;输入密码&gt;下一个 enter image description here

      6. 浏览APK目的地&gt;完 enter image description here

      7. 在Android Studio中:

        在工作室中创建密钥库[.keystore/.jks] ...

        1. 点击构建(ALT + B)&gt; 生成签名APK ...
          enter image description here

        2. 点击创建新..(ALT + C)
          enter image description here

        3. 浏览密钥库路径(SHIFT + ENTER)&gt;选择路径&gt;输入名称&gt; enter image description here

        4. 填写有关.jks/keystore文件的详细信息 enter image description here

        5. 接下来
          enter image description here

        6. 您的档案
          enter image description here

        7. 输入Studio主密码(如果您不知道,可以重置)&gt; enter image description here

        8. 选择*目标文件夹*&gt; 构建类型

          release : for publish on app store
          debug : for debugging your application
          

          单击“完成”

          enter image description here

        9. 完成!!!

答案 4 :(得分:27)

本教程:

http://techdroid.kbeanie.com/2010/02/sign-your-android-applications-for.html

第一次创建密钥库时,

对我非常有帮助。这很简单,但developer.android.com上的说明有点过于简短。

我不确定的部分是保存位置以及提供密钥库文件的名称。

我觉得你把它放在哪里并不重要只是确保它保持安全并保留一些备份。 我把它放在我的app目录

将文件命名为“something.keystore”,其中的内容可以是您想要的任何内容。我使用 app_name.keystore ,其中 app_name 是我的应用的名称。

下一部分是命名别名的内容。再次,它似乎并不重要,我再次使用 app_name 。保持密码与以前一样。填写剩下的字段,你就完成了。

答案 5 :(得分:12)

我跟着this guide创建了调试密钥库。

命令是:

keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

答案 6 :(得分:9)

使用此命令创建debug.keystore

keytool -genkey -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US"

答案 7 :(得分:3)

首先要知道的是你处于调试或发布模式。从开发人员站点“有两种构建模式:调试模式和发布模式。在开发和测试应用程序时使用调试模式。当您要构建可直接分发的应用程序的发行版时,可以使用发布模式用户或在Google Play等应用程序市场上发布。“

如果您处于调试模式,请执行以下操作...
  A.打开终端并输入:

keytool -exportcert -alias androiddebugkey -keystore path_to_debug_or_production_keystore -list -v

注意:对于Eclipse,调试密钥库通常位于〜/ .android / debug.keystore ...

B中。当提示输入密码时,只需输入“android”...

℃。如果您处于发布模式,请按照...上的说明进行操作。

http://developer.android.com/tools/publishing/app-signing.html&lt; - 此链接几乎解释了您需要知道的一切。

答案 8 :(得分:1)

您可以通过导出已签名的APK来创建密钥库。当您尝试导出/构建已签名的APK时,它会要求提供密钥库。

您可以选择现有的密钥库,也可以通过单击“创建新密钥库”

轻松创建新密钥库

这里的链接非常有用,并且很好地解释了如何创建密钥库并生成签名的APK

这个链接解释了如何使用Android Studio,但如果我记得,它在Eclipse上非常相似

观看

生成密钥库后,请将其保存在安全的地方,因为您需要它来重新生成新签名的APK。

How do I export a project in the Android studio?

答案 9 :(得分:0)

我想建议自动方式,仅分级

**还要在最后一个命令中为密钥库定义至少一个其他参数,例如国家'-dname', 'c=RU' **

apply plugin: 'com.android.application'

// define here sign properties
def sPassword = 'storePassword_here'
def kAlias = 'keyAlias_here'
def kPassword = 'keyPassword_here'

android {
    ...
    signingConfigs {
        release {
            storeFile file("keystore/release.jks")
            storePassword sPassword
            keyAlias kAlias
            keyPassword kPassword
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            shrinkResources true
            minifyEnabled true
            useProguard true
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    ...
}

...

task generateKeystore() {
    exec {
        workingDir projectDir
        commandLine 'mkdir', '-p', 'keystore'
    }
    exec {
        workingDir projectDir
        commandLine 'rm', '-f', 'keystore/release.jks'
    }
    exec {
        workingDir projectDir
        commandLine 'keytool', '-genkey', '-noprompt', '-keystore', 'keystore/release.jks',
            '-alias', kAlias, '-storepass', sPassword, '-keypass', kPassword, '-dname', 'c=RU',
            '-keyalg', 'RSA', '-keysize', '2048', '-validity', '10000'
    }
}

project.afterEvaluate {
    preBuild.dependsOn generateKeystore
}

这将在项目同步和构建时生成密钥库

> Task :app:generateKeystore UP-TO-DATE
> Task :app:preBuild UP-TO-DATE

答案 10 :(得分:-3)

如果您不想或不能使用Android Studio,可以使用create-android-keystore NPM工具:

$ create-android-keystore quick

这将在当前目录中生成一个新生成的密钥库。

更多信息:https://www.npmjs.com/package/create-android-keystore