http://habrahabr.ru/post/189660/
Около года назад я поучаствовал в конкурсе
Kivy App Contest 2014. Игрушка заняла одно из призовых мест (номинация «лучшая идея») и ко мне неоднократно обращались с просьбой выложить её на маркет. Я долго откладывал, но позавчера наконец созрел и потратив вечер — выложил. Оказалось всё совсем просто и я решил написать эту инструкцию для тех, кто, как и я, пишет на киви «в стол». Ну или тех, кто пишет на Питоне и не в курсе, что на нём можно легко писать андроидные аппликации и даже выкладывать их в маркете. Инструкция рассчитана на таких же как я полнейших чайников в разработке под Android. Профессионалам можно здесь прекратить чтение, а можно поправить/дополнить в комментариях.
Для начала пара слов для тех, кто на киви (пока, это не надолго) не пишет. Киви — это очень удобный фреймворк, позволяющий на чистом Питоне писать аппликации и компилировать их для Linux, Windows, OS X, Android и iOS практически не меняя код.
Сайт фреймворка. Хороший видеокурс для начинающих и продолжающихСписок проектов написанных на киви
Итак, у вас есть аппликация на киви, она прекрасно работает на PC и теперь вы хотите выложить её на Play Store. Что для этого нужно?
Для начала — убедиться, что на андроиде она работает не менее прекрасно. Проверить это есть два способа.
Первый из них — установить на устройстве аппликацию
Kivy Launcher и с её помощью запустить аппликацию прямо из исходников. Это очень удобно, а при наличии хорошего текстового редактора можно даже разрабатывать прямо на телефоне/таблете. Но есть один нюанс. Аппликация не должна пользоваться внешними библиотеками — только киви и стандартной библиотекой Питона. Если внешние библиотеки используются, всё ещё есть шанс запустить — проверьте, что библиотека не содержит никаких бинарников, только чистый Питон. Если это так, просто поместите её локально в папку с аппликацией и поменяйте соответственно импорты. Если бинарники всё-таки есть, из исходников запустить не выйдет, придётся компилировать. Для начала проверьте, есть ли используемые библиотеки в
списке рецептов.
Если нет, придётся разбираться с компиляцией самостоятельно или общаться в
чате с разработчиками (рекомендую, очень отзывчивые товарищи). Но большинство популярных и важных библиотек уже давно в этом списке.
Всё что описано дальше, выполняется на маке или линуксе. На винде придётся ставить виртуальную машину и образ. На
этой страничке можно скачать образ с предустановленным билдозером.
Устанавливаем программу buildozer (
pip install buildozer). Заходим в папку с аппликацией и запускаем
buildozer init. В папке появляется файл buildozer.spec. Меняем там настройки по вкусу, то, что действительно важно — requirements, а когда дело дойдёт до релиза — версия, впрочем, файл прекрасно документировал и разобраться с ним — дело пары минут. А, ну да, ещё уровень логов в начале полезно поставить 2 вместо 1, чтобы видеть почему компиляция падает, если она падает. Затем запускаем
buildozer android debug.
Если всё прошло успешно, в папке с проектом появится папка bin, а в ней apk файл.
Проверяем программу, любым из двух способов, обрабатываем напильником, доводим до совершенства (шучу, совершенства не бывает). Очень полезна опция logcat. Подсоединяем устройство к компьютеру usb кабелем запускаем
buildozer logcat, запускаем аппликацию и смотрим на компьютере логи и трейсбэки. Мне пригодилось, когда аппликация просто молча вылетала при запуске…
Итак, у вас есть аппликация на киви, она прекрасно работает на андроиде и теперь вы хотите выложить её на Play Store. Что для этого нужно?
сначала компилируем релиз-версию:
buildozer android release
Получаем unsigned apk, его нужно подписать. А для этого нужно создать ключ.
Запускаем:
keytool -genkey -v -keystore путь_туда_где_будет_лежать_ключ/имя_ключа.keystore -alias короткое_имя_для_ключа -keyalg RSA -keysize 2048 -validity 10000
Ключ готов. Его нужно сохранить и беречь как зеницу глаза. Теперь нужно подписать аппликацию этим ключом (при выкладывании новых версий аппликаций пользуемся тем же самым ключом, новый создавать не нужно).
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore путь_туда_где_лежит_ключ/имя_ключа.keystore путь_к_проекту/bin/неподписанный_apk короткое_имя
Теперь хоть файл и называется unsigned, он уже подписан. Теперь желательно оптимизировать его утилитой zipalign. она лежит в android sdk, который buildozer скачивает при установке.
zipalign -v 4 путь_к_подписанному_apk путь_туда_где_будет_лежать_готовый_apk
Итак у вас есть готовый apk.
Теперь вам нужно нарисовать несколько картинок.
Картинки следующие — иконка приложения которая будет отображаться на устройстве (её нужно прописать в buildozer.spec), иконка приложения (512х512), которая будет отображаться в маркете. Скриншоты для телефона, семидюймовых таблетов, десятидюймовых таблетов (в общем для тех устройств, для которых аппликация будет показываться в маркете) и картинка 1024х500 для раздела рекомендуемое (ага, знаю, смешно, но это обязательно к заполнению). Я всё вышеперечисленное нарезал за пару минут из скриншотов, но безусловно лучше потратить время и сделать что-нибудь качественное.
Когда есть аппликация и все картинки, идём наконец в
консоль разработчика, регистрируемся если ещё не, платим Гуглу за удовольствие 25$ (может об этом надо было написать в начале статьи?) расставляем все картиночки, пишем описания, отвечаем на пару вопросов для получения возрастного рейтинга, загружаем apk, ждём несколько часов подтверждения и любуемся приложением в маркете. Ссылки на выложенные приложения кидайте в комменты.