如何创建密钥库?

use*_*762 486 android keystore

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

geo*_*sey 499

要回答标题中的问题,可以使用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
Run Code Online (Sandbox Code Playgroud)

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

  • 有关信息,在我的情况下,我需要打开命令窗口与**管理员权限** (7认同)
  • 定义-keysize 2048而不是默认1024个人我现在正在使用4096 (6认同)
  • 我使用了这个命令来设置 2 个密码,以便您跳过一些提示:`keytool -genkey -v -keystore debug.keystore -storepass android -alias android -keypass android -keyalg RSA -keysize 2048 -validity 10000` 。然后,要生成需要放入 Firebase 中的 SHA-1,请执行以下操作:`keytool -list -v -keystore debug.keystore -alias android -storepass android -keypass android` (4认同)
  • 立即测试您的结果并接收您创建的指纹:`keytool -list -v -keystore my-release-key.keystore -alias alias_name -storepass mypassword -keypass mypassword` (2认同)
  • 在我的例子中,从 android studio 创建密钥库从来没有起作用。只有此处解释的 CLI 方法有效。 (2认同)

mus*_*vgi 144

在Android Studio中签署您的应用程序

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

1-在菜单栏上,单击"生成">"生成签名的APK".


2 - 在"生成签名的APK向导"窗口中,单击"新建"以创建新的密钥库.如果您已有密钥库,请转到步骤4.


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

在此输入图像描述

4-在"生成签名APK向导"窗口中,选择密钥库,私钥,然后输入两者的密码.然后单击下一步.在此输入图像描述

5-在下一个窗口中,选择已签名APK的目标位置,然后单击"完成". 在此输入图像描述

全球化志愿服务青年

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

  • 虽然这个答案是正确的,但您甚至可以没有“构建>生成签名包/APK...”!因为如果您克隆一个项目并尝试编译它,它将需要 `keystore.jks`,但是要创建 `keystore.jks`,您必须构建 gradle 文件才能启用菜单!为了克服这个障碍,您应该编辑“build.gradle”并注释“signingConfigsigningConfigs.release”,然后注释设置密钥库属性的行。之后同步 `build.gradle` 并尝试再次编译 (Ctrl+F9)。 (3认同)
  • 虽然这个答案是正确的,但只有在您已经安装了android studio的情况下,这才很方便。 (2认同)

Eli*_*iuX 89

我在疯狂地看着如何在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
Run Code Online (Sandbox Code Playgroud)
  • dname是.keystore中应用程序的唯一标识符

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

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

它对我来说非常好用,它不会在控制台中要求任何其他内容,只需创建文件即可.有关更多信息,请参阅keytool - 密钥和证书管理工具.

  • `jks`是[java的官方密钥库扩展](http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html#SUNProvider),但``keystore`是一个建议用于[android apps](https://developer.android.com/studio/publish/app-signing.html). (2认同)

Iam*_*at8 71

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

  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]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 输入>它会提示您输入密码>输入密码(它将不可见)

    Enter keystore password:
    Re-enter new password:
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  4. 输入>输入Y.

    Is CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91 correct?
    [no]:  Y
    
    Run Code Online (Sandbox Code Playgroud)
  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:
    
    Run Code Online (Sandbox Code Playgroud)

[存储C:/index.keystore]

  1. 你完成了!

在Eclipse中导出:

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

  1. 右键单击要导出的包,然后选择导出 在此输入图像描述

  2. 选择导出Android应用程序>下一步 在此输入图像描述

  3. 下一个
    在此输入图像描述

  4. 选择使用现有密钥库>浏览.keystore文件>输入密码>下一步 在此输入图像描述

  5. 选择别名>输入密码>下一步 在此输入图像描述

  6. 浏览APK目的地>完成 在此输入图像描述

在Android Studio中:

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

  1. 单击构建(ALT + B) > 生成签名APK ...
    在此输入图像描述

  2. 单击" 新建..."(ALT + C)
    在此输入图像描述

  3. 浏览密钥库路径(SHIFT + ENTER)>选择路径>输入名称> 确定 在此输入图像描述

  4. 填写有关您.jks/keystore文件 的详细信息在此输入图像描述

  5. 下一个
    在此输入图像描述

  6. 你的档案
    在此输入图像描述

  7. 输入Studio主密码(如果您不知道,可以重置) > 确定 在此输入图像描述

  8. 选择*目标文件夹*> 构建类型

    release : for publish on app store
    debug : for debugging your application
    
    Run Code Online (Sandbox Code Playgroud)

    单击完成

    在此输入图像描述

完成!!!


bir*_*man 28

本教程:

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.保持密码与以前一样.填写其余的字段,你就完成了.

  • 这就是链接答案的问题..:( 已过期 (4认同)

Dav*_*ore 13

我按照本指南创建了调试密钥库.

命令是:

keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
Run Code Online (Sandbox Code Playgroud)


Ara*_*vin 10

使用此命令可以创建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"
Run Code Online (Sandbox Code Playgroud)


Sho*_*ove 5

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

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

keytool -exportcert -alias androiddebugkey -keystore path_to_debug_or_production_keystore -list -v
Run Code Online (Sandbox Code Playgroud)

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

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

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

http://developer.android.com/tools/publishing/app-signing.html <-- 这个链接几乎解释了你需要知道的一切。