为 android 创建密钥库的步骤是什么?
我需要在我的应用程序中使用谷歌地图,但我不知道我错过了哪些步骤。请向我提供具体的详细步骤(我从指南中没有理解)。
要回答标题中的问题,您需要使用任何标准 JDK 发行版附带的 Java Keytool 实用程序创建一个密钥库,该实用程序位于%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
Keytool 会提示您提供密钥库的密码,提供专有名称字段,然后提供您的密钥的密码。然后它将密钥库生成为在您所在目录中调用的文件my-release-key.keystore
。密钥库和密钥受您输入的密码保护。密钥库包含一个密钥,有效期为 10000 天。这alias_name
是您稍后将使用的名称,用于在签署应用程序时引用此密钥库。
有关 Keytool 的更多信息,请参阅以下文档:http ://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
有关签署 Android 应用程序的更多信息,请访问此处:http: //developer.android.com/tools/publishing/app-signing.html
To sign your app in release mode in Android Studio, follow these steps:
1- On the menu bar, click Build > Generate Signed APK.
2-On the Generate Signed APK Wizard window, click Create new to create a new keystore. If you already have a keystore, go to step 4.
3- On the New Key Store window, provide the required information as shown in figure Your key should be valid for at least 25 years, so you can sign app updates with the same key through the lifespan of your app.
4- On the Generate Signed APK Wizard window, select a keystore, a private key, and enter the passwords for both. Then click Next.
5- On the next window, select a destination for the signed APK and click Finish.
http://developer.android.com/tools/publishing/app-signing.html
我疯狂地寻找如何在 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 中应用程序的唯一标识符
alias应用程序的标识符作为 .keystore 中的单个实体(它可以有很多)
.ks
)它对我来说效果很好,它不会在控制台中要求任何其他内容,只是创建文件。有关详细信息,请参阅keytool - 密钥和证书管理工具。
从命令行创建密钥库文件:
打开命令行:
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 > 它会提示您输入密码 > 输入密码(它将是不可见的)
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 应用程序 > 下一步
下一个
[.keystore/.jks]
在工作室中创建密钥库...
单击构建 (ALT+B) >生成签名的 APK...
单击新建..(Alt+C)
填写有关您的.jks/keystore
文件
的详细信息
下一个
你的档案
输入 Studio Master 密码(不知道的可以RESET) > OK
选择 *目标文件夹 * >构建类型
release : for publish on app store
debug : for debugging your application
点击完成
完毕 !!!
本教程:
http://techdroid.kbeanie.com/2010/02/sign-your-android-applications-for.html
第一次创建密钥库时对我很有帮助。这很简单,但是 developer.android.com 上的说明有点太简短了。
我不确定的部分是保存在哪里以及给密钥库文件取什么名字。
我似乎把它放在哪里并不重要,只要确保它安全并保留一些备份。我只是把它放在我的应用程序目录中
将文件命名为“something.keystore”,其中的东西可以是您想要的任何东西。我使用了app_name.keystore,其中app_name是我的应用程序的名称。
下一部分是如何命名别名。同样,这似乎并不重要,所以我再次使用了app_name。保持密码与您之前使用的相同。填写其余字段,您就完成了。
我按照本指南创建了调试密钥库。
命令是:
keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
使用此命令创建 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"
首先要知道您是处于调试模式还是发布模式。来自开发者网站“有两种构建模式:调试模式和发布模式。您在开发和测试应用程序时使用调试模式。当您想要构建可以直接分发的应用程序的发布版本时,您可以使用发布模式给用户或在 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 <--这个链接几乎解释了你需要知道的一切。
您可以通过导出已签名的 APK 来创建您的密钥库。当您尝试导出/构建签名的 APK 时,它会要求提供密钥库。
您可以选择现有的密钥库,也可以通过单击创建新密钥库轻松创建一个新密钥库
这里有一个非常有用的链接,并且很好地解释了如何创建您的密钥库并生成签名的 APK
此链接解释了如何使用 Android Studio 进行操作,但如果我记得,它在 Eclipse 上非常相似
小心
生成密钥库后,请将其保存在安全的地方,因为您将需要它来重新生成新的签名 APK。
我想建议只使用 gradle的自动方式
** 在最后一个命令中为密钥库定义至少一个附加参数,例如国家'-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
基于@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'
}
}
如果不想或不能使用 Android Studio,可以使用 create-android-keystore NPM 工具:
$ create-android-keystore quick
这会在当前目录中生成一个新生成的密钥库。