Какие шаги для создания хранилища ключей для Android?
Мне нужно использовать Google Maps в моем приложении, и я не знаю, какие шаги я пропустил. Пожалуйста, предоставьте мне конкретные подробные шаги (я не понял этого из руководств).
Какие шаги для создания хранилища ключей для Android?
Мне нужно использовать Google Maps в моем приложении, и я не знаю, какие шаги я пропустил. Пожалуйста, предоставьте мне конкретные подробные шаги (я не понял этого из руководств).
Ответы:
Чтобы ответить на вопрос в заголовке, вы создаете хранилище ключей с помощью утилиты 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
. Затем, чтобы сгенерировать SHA-1, который нужно поместить в Firebase, сделайте: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
Я без ума от того, как сгенерировать .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.
jks
является официальным расширением хранилища ключей для Java в целом, но keystore
рекомендуется использовать вместо него для приложений Android .
Создать файл хранилища ключей из командной строки:
Открытая командная строка:
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
Enter> Enter 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)
Просмотр пути к хранилищу ключей (SHIFT + ВВОД)> Выбрать путь> Введите имя> ОК
Заполните детали о вашем .jks/keystore
файле
следующий
Ваш файл
Введите мастер-пароль студии (вы можете сбросить, если вы не знаете) > ОК
Выберите * Папка назначения *> Тип сборки
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 слишком короткие.
Часть, в которой я не был уверен, была о том, где сохранить и какое имя дать файлу хранилища ключей .
Кажется, не имеет значения, куда вы положили его, просто обязательно сохраните его и сохраните несколько резервных копий. Я просто положил его в каталог приложений
Назовите файл «thing.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, вы можете использовать инструмент NPM create-android-keystore:
$ create-android-keystore quick
В результате создается новое хранилище ключей в текущем каталоге.
Дополнительная информация: https://www.npmjs.com/package/create-android-keystore