为android创建密钥存储库的步骤是什么?
我需要在我的应用程序中使用谷歌地图,我不知道我错过了什么步骤。 请提供给我具体的详细步骤(我看指南没看懂)
为android创建密钥存储库的步骤是什么?
我需要在我的应用程序中使用谷歌地图,我不知道我错过了什么步骤。 请提供给我具体的详细步骤(我看指南没看懂)
当前回答
我想建议自动方式与gradle仅
**在最后一个命令中定义至少一个额外的keystore参数,例如country '-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
其他回答
本教程:
“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上的说明有点太简短了。
我不确定的部分是保存在哪里以及给keystore文件起什么名字。
我认为把它放在哪里并不重要,只要确保它的安全,并保留一些备份。 我只是把它放到我的应用程序目录里
将文件命名为“something”。密钥存储库”,其中的东西可以是您想要的任何东西。我使用了app_name。Keystore,其中app_name是应用程序的名称。
下一个问题是如何命名别名。这似乎无关紧要,所以我再次使用app_name。请保持与以前相同的密码。填写剩下的字段就完成了。
使用此命令创建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"
基于@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'
}
}
我想建议自动方式与gradle仅
**在最后一个命令中定义至少一个额外的keystore参数,例如country '-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
您可以通过导出签名APK来创建密钥存储库。当您尝试导出/构建一个签名的APK时,它将要求一个密钥存储库。
您可以选择现有的密钥存储库,也可以通过单击create new密钥存储库轻松创建一个新的密钥存储库
这里有一个非常有用的链接,详细解释了如何创建密钥存储库并生成签名APK
这个链接解释了如何在Android Studio中做到这一点,但如果我记得,它在Eclipse中非常相似
小心
生成密钥存储库后,请将其保存在安全的地方,因为您将需要它来重新生成一个新的签名APK。
我如何在Android工作室导出一个项目?