Тема этого урока не относится непосредственно к программированию. И вполне себе можно кодить без этих знаний. Но для общего развития, думаю, об этом все-таки стоит поговорить. Данные знания пригодятся вам, например, когда будете делать приложение с гугл-картой, или когда будете выкладывать свое творение на маркет.
Подпись приложения
Вообще, в процессе подписи и верификации участвуют закрытый/открытый ключи и сертификат. Если кому интересно, то можете погуглить эти понятия и почитать подробнее. Я же, чтобы не усложнять урок, буду просто называть все это ключом. Для понимания темы урока этого будет достаточно.
Вы создали приложение и хотите его протестировать на реальном устройстве или эмуляторе. Для того, чтобы установить и запустить приложение, оно должно быть подписано. Если вы еще не публиковали на маркете свои приложения, то, скорее всего, про то, что приложение надо подписывать, вы слышите первый раз. И точно помните, что ни с какими подписями не возились.
Как подписывать приложение андроид
Создавали проект, кодили все, что нужно, сохраняли и запускали и все прекрасно работало. Так происходило, потому что Eclipse сам создавал ключ и сам подписывал приложение этим ключом, чтобы вам на первых порах не приходилось думать об этом. И когда ваше приложение устанавливалось, оно было уже подписанным. А если попытаться установить неподписанное приложение, то получим ошибку.
Итак, приложение обязательно должно быть подписанным, и Eclipse любезно берет это на себя. Он подписывает их debug-ключом. Раньше срок его действия был всего один год. Android проверяет срок действия ключа только при установке. Т.е. если вы установили приложение и срок действия ключа истек, вы все равно сможете использовать установленное приложение.
А вот установить или обновить приложение, подписанное истекшим ключом, не получится. Система выдаст ошибку.
Сейчас срок debug-ключа равен 30 лет. Но приложение, подписанное debug-ключом, не получится опубликовать на маркете. А значит, нам надо будет создавать свой ключ и подписывать им приложение.
keytool
Для создания ключа нам понадобится утилита keytool. Ее можно найти по адресу bin. Она умеет создавать новые ключи и показывать информацию о уже существующих. Давайте сначала попробуем посмотреть информацию о существующем ключе. Для этого возьмем тот самый debug-ключ, который используется для подписи приложений по умолчанию.
Узнать где он находится можно в настройках Eclipse: Window > Preferences >Android > Build.
Файл debug.keystore имеет расширение keystore. Это можно перевести как хранилище ключей. Это действительно так, один такой файл может содержать в себе несколько ключей. Для того чтобы обратится к конкретному ключу внутри хранилища используется alias (алиас, можно рассматривать его как имя ключа).
Посмотрим, какие ключи есть в хранилище debug.keystore. Используем команду list. С помощью параметров keystore и storepass укажем имя файла хранилища и пароль к хранилищу:
Самый простой способ Как подписать приложение Как подписать apk файл APK Signer
keytool -list -keystore debug.keystore -storepass android
Как получить подпись для приложений Android?
Вы можете сгенерировать ключ разработчика двумя способами:
Генерация ключа подписи с помощью Android Studio
Установите Android Studio на свой компьютер и запустите программу.
Вам потребуется создать ключ загрузки и хранилище ключей. Сделать это можно следующим образом:
1. В строке меню выберите “Сборка» — «Сборка» — «Создать подписанный пакет / APK”.
2. В диалоговом окне «Создать подписанный пакет или APK» выберите «Пакет приложений Android» или «APK» и нажмите «Далее».
3. Ниже поля для Путь к хранилищу ключей нажмите “Создать новый”.
4. В окне «Новое хранилище ключей» укажите следующую информацию о вашем хранилище ключей и ключе:
- Путь к хранилищу ключей: выберите место, где должно быть создано хранилище ключей.
- Пароль: создайте и подтвердите безопасный пароль для вашего хранилища ключей.
- Псевдоним: введите идентифицирующее имя для вашего ключа.
- Пароль: создайте и подтвердите безопасный пароль для вашего ключа. Это должно отличаться от пароля, который вы выбрали для хранилища ключей
- Срок действия (в годах): установите период времени, в течение которого ваш ключ будет действителен. Ваш ключ должен быть действителен в течение не менее 25 лет, чтобы вы могли подписывать обновления приложения одним и тем же ключом в течение срока службы вашего приложения.
- Сертификат: введите некоторую информацию о себе для своего сертификата. Эта информация не отображается в вашем приложении, но включена в ваш сертификат как часть APK.
7. Заполнив форму, нажмите кнопку ОК.
Теперь вы можете перейти в папку, которую указали для хранения ключей и скопировать файл *keystore.
Генерация ключа подписи с помощью Keytool
1. Загрузите и установите Java.
2. Установить каталог Java_Home.
3. Откройте командную строку (cmd.exe) как администратор, затем выполните следующую команду:
$ keytool -genkey -v -keystore [keystore_name].keystore -alias [alias_name] -keyalg RSA -keysize 2048 -validity 10000
4. Keytool запросит пароль хранилища ключей. Введите пароль и подтвердите.
5. Далее keytool запросит дополнительную информацию — имя, страну и т.д. Укажите всю требуемую информацию.
6. Затем keytool запросит пароль для псевдонима. Вернитесь, если он совпадает с паролем хранилища ключей. В противном случае введите пароль и подтвердите.
7. Готово — ваш ключ готов к копированию!
Скопированный файл ключа, вы можете добавить в Личном кабинете в качестве подписи для приложения Android.
Источник: tadapp.ru
Подписывание кода для Android
В этой статье вы узнаете, как подписывать код для Android (APK). Вам нужно будет подписать свое приложение для Android, если вы выбрали Android как одну из платформ при создании и сборки своего проекта упаковки.
Если вместо этого вы хотите подписать приложение AAB для распространения в Google Play, см. статью Подписывание своего приложения.
Подготовьте свой компьютер
Для начала вам потребуется предоставить следующую информацию:
- Установка Android Studio
- Установите OpenSSL
Создание ключей
Пропустите и перейдите к подписыванию пакета APK, если вы уже сгенерировали ключи и хэш подписи при создании регистрации приложения.