如何创建密钥库?

为Android创建密钥库的步骤是什么?

我需要在我的应用程序中使用谷歌地图,我不知道我错过了哪些步骤。 具体详细步骤请提供给我看看(看指南没看明白)

897829 次浏览

本教程:

“sign-your-android-applications-for.html”

存档在这里: https://web.archive.org/web/20181002011446/http://techdroid.kbeanie.com/2010/02/sign-your-android-applications-for.html

这对我第一次创建密钥库很有帮助。它很简单,但developer.android.com的说明有点过于简短。

我不确定的部分是在哪里保存以及给密钥库文件起什么名字。

我似乎不管你把它放在哪里,只要确保它的安全并保留一些备份。 我只是把它放在我的应用程序目录中

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

接下来的部分是如何命名别名。同样,这似乎无关紧要,所以我再次使用了app_name。保持密码与您之前使用的相同。填写其余字段,您就完成了。

要回答标题中的问题,您可以使用任何标准JDK发行版附带的Java密钥工具实用程序创建一个密钥库,并且可以位于%JAVA_HOME%\bin。在Windows上,这通常是C:\Program Files\Java\jre7\bin

在Windows上,打开一个命令窗口并切换到该目录。在Linux类型的操作系统上,对终端执行相同的操作。然后运行:

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

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

有关KeyTools的更多信息,请参阅留档:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

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

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

如果您处于调试模式,请执行以下操作…
A.打开终端和类型:

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

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

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

C.如果您处于发布模式,请按照…

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

我遵循本指南来创建调试密钥库。

命令是:

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

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

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

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

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

小心

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

如何在Android Studio中导出项目?

我疯狂地寻找如何在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国家短代码。例如:美国是“美国”
  • alias将应用程序标识为. keystore中的单个实体(它可以有多个)

  • 密钥用于保护特定别名的密码。
  • 密钥库创建. keystore文件的路径(标准扩展名实际上是.ks
  • 商店通行证密码用于保护整个. keystore内容。
  • 有效性几天内应用程序将有效. keystore

它对我来说非常有效,它不要求控制台中的任何其他内容,只是创建文件。有关更多信息,请参阅KeyTools-密钥和证书管理工具

在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

从命令行创建keystore文件:

  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 > It will prompt you for password > enter password (it will be invisible)

    Enter keystore password:
    Re-enter new password:
    
  3. Enter > It will ask your detail.

    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. Enter > Enter Y

    Is CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91 correct?
    [no]:  Y
    
  5. Enter > Enter password again.

    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:
    

[ Storing C:/index.keystore ]

  1. And your are DONE!!!

Export In Eclipse :

Export your android package to .apk with your created keystore file

  1. Right click on Package you want to export and select export enter image description here

  2. Select Export Android Application > Next enter image description here

  3. Next
    enter image description here

  4. Select Use Existing Keystore > Browse .keystore file > enter password > Next enter image description here

  5. Select Alias > enter password > Next enter image description here

  6. Browse APK Destination > Finish enter image description here

In Android Studio:

Create keystore [.keystore/.jks] in studio...

  1. Click Build (ALT+B) > Generate Signed APK...
    enter image description here

  2. Click Create new..(ALT+C)
    enter image description here

  3. Browse Key store path (SHIFT+ENTER) > Select Path > Enter name > OK enter image description here

  4. Fill the detail about your .jks/keystore file enter image description here

  5. Next
    enter image description here

  6. Your file
    enter image description here

  7. Enter Studio Master Password (You can RESET if you don't know) > OK enter image description here

  8. Select *Destination Folder * > Build Type

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

    单击完成

    在此处输入图片描述

成交!!!

使用此命令创建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"

我想建议使用gradle而已自动方式

**在最后一个命令中为keystore定义至少一个附加参数,例如国家'-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

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

$ create-android-keystore quick

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

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

基于@EliuX回答,与应用程序包兼容的最新工具

echo y | keytool -genkey -keystore ./android.jks -dname "n=Mark Jones, ou=JavaSoft, o=Sun, c=US" -alias android -keypass android  -storepass android -keyalg RSA -keysize 2048 -validity 2000

为了你的build.gradle

    signingConfigs {
debug {
storeFile file('android.jks')
keyAlias 'android'
keyPassword 'android'
storePassword 'android'
}
}