Разрабатывая на Cordova часто всё идёт не так: то плагин неправильно поставится, то конфиг слетит, а то и обновленный node.js законфликтует, и ничего, зараза, не хочет запускать. Но так или иначе, гибридная разработка уже нашла своих приверженцев и имеет достаточно плюсов, чтобы смириться с мелочами. Ниже расскажу как подписать APK релизным ключом для публикации в маркете.
Генерация ключа
Создать ключ с помощью командной строки можно следующей командой:
keytool -genkey -v -keystore test_key.jks -alias release -keyalg RSA -sigalg SHA1withRSA -keysize 2048 -validity 10000
Или сделать гуишно:
- Установить Android Studio
- Создать в ней нативный тестовый проект
- Перейти в закладку «Build / Generate Signed APK»
- Нажать «Create new»
- Заполнить все поля и сгенерировать в «release»
Сохраните созданный файл ключа в надежном месте
Если вы его потеряете ключ к опубликованному приложению — обновление в маркете сделать не сможете.
Компиляция проекта
Если вы используете Ionic или чистейшую Cordova последовательность будет выглядеть так:
1) Добавляем платформу Android (если ещё не добавили)
2) Устанавливаем cordova плагины
cordova prepare
3) Инкрементируем версию проекта в config.xml в теге widget
cordova build android --release
4) Вместо test_key.jks набираем имя своего файла ключа, вместо android — имя alias:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore test_key.jks platforms/android/build/outputs/apk/android-release-unsigned.apk android
5) Вводим пароль, указанный при генерации ключа
6) Запаковываем в новый APK:
zipalign -v 4 platforms/android/build/outputs/apk/android-release-unsigned.apk platforms/android/build/outputs/apk/test.apk
Настройка Google Play Developer Console
Тут всё делается относительно ваших текущих задач на основе многочисленных руководств. Вкратце, я рекомендую делать следующее:
- Создать новое приложение в разделе «All Applications»
- Перейти в APK и залить билд, например, в Alpha
Зайти в https://console.developers.google.com/project где создать новое приложение.
- В разделе APIs & auth включить необходимые API
Если используете Play Services включите следующие:
Google Play Game Management, Google Play Game Services, Google+ API.
- Теперь перейти в https://play.google.com/apps/publish в раздел Game Services
- Прикрепить созданную прежде игру
- В разделе Linked apps создать ссылку на Android
- В Package name выбрать ссылку на своё творение вида: com.company.app. Сохранить
- Кликнуть на кнопку Authorize your app now
Если SHA1 автоматически записался — все хорошо. Иначе вы где-то накосячили и придется начинать заново.
- Нажать Confirm и ждать
Если успешно сохранилось — значит все настройки правильны и можно ставить пакет на устройство. Если произошла какая-то ошибка, лучшее что я могу подсказать — это удалить проект полностью и начать с самого сначала 🙂
Не забывайте удалять приложения с обеих консолей google. Например у меня была ошибка «An unexpected error occurred. Please try again later. (4800004)», которая возникает, если приложение было удалено на console.developers.google.com, но почему-то осталось на play.google.com/apps/publish.
На этом всё. Тратье время на решение задач, а не на войну с конфигами.