为Android创建密钥库的步骤是什么?
我需要在我的应用中使用Google Maps,但我不知道错过了哪些步骤。请向我提供具体的详细步骤(我对指南不了解)。
为Android创建密钥库的步骤是什么?
我需要在我的应用中使用Google Maps,但我不知道错过了哪些步骤。请向我提供具体的详细步骤(我对指南不了解)。
Answers:
要回答标题中的问题,您可以使用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
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
要在Android Studio中以发布模式签名您的应用,请执行以下步骤:
1-在菜单栏上,单击构建>生成签名的APK。
2在“生成签名的APK向导”窗口中,单击“新建”以创建新的密钥库。如果您已经有一个密钥库,请转到步骤4。
3-在“新密钥库”窗口中,提供所需的信息,如图所示。密钥的有效期至少为25年,因此您可以在应用程序的整个生命周期内使用相同的密钥对应用程序更新进行签名。
4-在“生成签名的APK向导”窗口中,选择一个密钥库,一个私钥,然后输入两者的密码。然后单击“下一步”。
5-在下一个窗口中,为签名的APK选择一个目标,然后单击“完成”。
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中应用程序的唯一标识符
应用程序的别名,作为.keystore中的单个实体的标识符(可以有多个)
.ks
)它对我来说真的很好用,它在控制台中不需要任何其他内容,只创建文件即可。有关更多信息,请参见keytool-密钥和证书管理工具。
/path/file.keystore
并使用storepass参数指出该错误。
从命令行创建密钥库文件:
打开命令行:
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应用程序>下一步
下一个
[.keystore/.jks]
在Studio中创建密钥库...
单击生成(ALT + B) > 生成签名的APK ...
单击新建。(ALT + C)
填写有关.jks/keystore
文件
的详细信息
下一个
您的档案
输入Studio主密码(如果不知道,可以重设) > 确定
选择*目标文件夹*> 构建类型
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
首先要知道的是,您是否处于调试或发布模式。来自开发人员站点“有两种构建模式:调试模式和发布模式。在开发和测试应用程序时使用调试模式。当您要构建可以直接分发的应用程序的发布版本时,可以使用发布模式。给用户或在应用市场(例如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
如果您不想或不能使用Android Studio,可以使用create-android-keystore NPM工具:
$ create-android-keystore quick
这将在当前目录中生成一个新生成的密钥库。
更多信息:https : //www.npmjs.com/package/create-android-keystore