为android创建密钥库的步骤(在eclipse环境中)? 我需要在我的应用程序中使用谷歌地图,我不知道我错过了哪些步骤。 请向我提供具体的详细步骤(我从指南中了解不到)。
答案 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中以发布模式签署您的应用,请按以下步骤操作:
1-在菜单栏上,单击Build>生成签名APK。
2 - 在Generate Signed APK Wizard窗口中,单击Create new以创建新的密钥库。 如果您已有密钥库,请转到步骤4.
3-在New Key Store窗口中,提供所需信息,如图所示 您的密钥有效期至少为25年,因此您可以在应用程序的生命周期内使用相同的密钥对应用更新进行签名。
4-在Generate Signed APK Wizard窗口中,选择一个密钥库,一个私钥,然后输入两者的密码。然后单击“下一步”。
5-在下一个窗口中,选择已签名APK的目的地,然后单击“完成”。
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中应用程序的唯一标识符
别名。应用程序的标识符作为.keystore中的单个实体(可以有很多)
.ks
)它对我来说非常好用,它不会在控制台中要求任何其他内容,只需创建文件即可。有关详细信息,请参阅keytool - Key and Certificate Management Tool。
答案 3 :(得分:63)
从命令行创建密钥库文件:
打开命令行:
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]
输入>它会提示您输入密码>输入密码(它将不可见)
Enter keystore password:
Re-enter new password:
输入>它会询问你的详细信息。
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
输入>输入Y
Is CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91 correct?
[no]: Y
输入>再次输入密码。
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:
[存储C:/index.keystore]
使用您创建的密钥库文件将您的android软件包导出到.apk
右键单击要导出的包,然后选择导出
选择导出Android应用程序&gt;下一个
接下来
在工作室中创建密钥库[.keystore/.jks]
...
答案 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。
答案 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
这将在当前目录中生成一个新生成的密钥库。