MyTetra Share
Делитесь знаниями!
Публикация Qt-приложения для Android
Время создания: 19.08.2018 17:44
Автор: Васильев Владимир Сергеевич
Текстовые метки: android, qt, публикация, play market
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - Инсталляция Qt и сборка проектов
Запись: xintrea/mytetra_syncro/master/base/15285744548os9ewr8kl/text.html на raw.github.com

немножко доработал игрушку на Qt из предыдущей статьи, выложил ее на google play и решил описать всё, что мне показалось интересным в этом процессе: получение аккаунта разработчика, сборка приложения для google play, проблемы с файлами дополнений и отладка приложения.

Для того, чтобы размещать приложения на площадке гугла, надо иметь аккаунт разработчика для google play [2]. Регистрация стоит денег (в районе 900 рублей), которые требуют переводить с банковской карты типа Visa, MasterCard или некоторых другие. У меня было 2 банковских карты — зарплатная MasterCard и Visa Momentum. Обе не подошли, пришлось заказывать новую карту Visa Classic (заняло 2 недели).

Сборка Qt-приложения для google play

До того, как выложить игру на маркет, я собирал .apk-файл для android, копировал его на телефон или передавал товарищам. Несмотря на то, что я использовал тип сборки выпуск (release), почему-то получался файл с префиксом debug и я не придавал этому значения,пока гугл не сообщил, что отладочная версия его не устроит. Для сборки релизной версии не достаточно установить галочку «выпуск» в настройках проекта, надо покопаться в настройках установки (проекты->run->конфигурация установки).


Выбор типа сборки


В настройках установки можно выбрать установку Ministro — тогда ваше приложение будет «весить меньше», но при первом запуске будет устанавливать Ministro, которое подгрузит нужные библиотеки, это удобно при отладке приложения на своем телефоне. Установка во временный каталог тоже используется при отладке, а для выпуска приложения на маркет надо внедрять библиотеки в .apk-файл.


Конфигурация установки


У вас никак не получится собрать релиз без подписывания пакета, а для этого нужно создать связку ключей (keychain), щелкнув соответствующую кнопку в окне конфигурации установки.


Создание связки ключей и сертификата


В появившемся окне я ввел только пароль и персональные данные, остальные поля оставил со значениями по умолчанию. Теперь при сборке у вас должна получаться релизная версия, но при загрузке на маркет, вы будете получать ошибку о том, что приложению надо установить иконку (добавлен иконок на сайте маркета тут не при чем).

Для добавления иконки нужно создать файл манифеста (кнопкой на экране конфигурации установки).


Настройка манифеста


Файл манифеста можно редактировать как руками (это .xml-файл), так и специальным инструментом, встроенным в Qt Creator. В файле манифеста нужно указать:

  • имя пакета — идентификатор приложения на маркете;
  • код и название версии — вы будете менять их всякий раз при обновлении приложения;
  • иконку приложения — я добавил только одну иконку 512х512 пикселей (иконку такого же размера потом надо будет добавить на маркет);
  • разрешения — если ваше приложение работает с интернетом, файловой системой и т.п., то дополнительные разрешения надо будет выбрать из выпадающего списка. При установке приложения пользователя предупредят о том, куда лезет ваша программа.

Теперь приложение соберется для выпуска и .apk файл можно будет загрузить на маркет.


Загрузка .apk-файла


К загруженному приложению нужно добавить иконки, рекламные материалы и не менее двух скриншотов. Если ваше приложение использует много ресурсов (музыки, видео, …) и занимает много места, то ресурсы могут быть вынесены в файлы дополнения (об этом я напишу дальше чуть подробнее).


Загрузка иконок и рекламных изображений


После этого приложение можно опубликовать как альфа-/бета-версию, нагнать тестеров, а затем повысить до рабочей версии.

Файлы дополнения на Android

В игрушку я добавил меню, позволяющее выбрать уровень. Перед тем, как выкладывать приложение на маркет, я прочитал про файлы дополнений. Прочитал плохо, отсюда появилась проблема — я захотел обновлять приложение изменяя лишь файл дополнений (я подумал, что пользователю приятнее скачать несколько килобайт файла с описанием уровней, чем 10 мегабайт приложения), но это оказалось невозможно. Изменить файл дополнения можно лишь изменив .apk-файл, который оно дополняет, при этом обязательно изменится версия приложения (указанная в файле манифеста).

Можно попытаться найти обходные пути — например, хранить файл с описанием уровней на каком-нибудь сервере в интернете, но тогда приложение не будет автоматически обновляться (как это делается через google play). Пользователь не узнает о новых уровнях, пока не откроет приложение в то время, когда будет иметь доступ к интернету и сервер с файлом уровней будет доступен. В общем, лучше так не делать.

Пока я возился с дополнениями, я столкнулся с еще одной проблемой — при загрузке, оно переименовывается и размещается далеко не в том же каталоге, что и .apk файл. Чтобы обратиться к нему, надо будет сначала получить путь к каталогу с дополнениями, а это можно сделать с использованием QtAndroidExtras. В общем, это не так красиво, как хотелось бы и я не стал заморачиваться.

Тестирование приложения на google play

Очень понравилась организация тестирования на google play. У приложения есть 3 стадии:

  • альфа-версия. Приложение не доступно для поиска в маркете, никто случайно его не установит и ругаться не будет. В настройках проекта (на той же вкладке, где вы загружали .apk файл) есть кнопка «изменить список тестировщиков«. Можно либо добавлять тестеров по одному (с указанием из почты на gmail), либо добавить сообщество google+ (я создал сообщество). Все люди, вошедшие в сообщество, получают доступ к тестированию, но на маркете они найти приложение до сих пор не могут, поэтому в сообществе стоит разместить ссылку на приложение. Понравилось то, что есть хорошая возможность прорекламировать сообщество и игрушку в социальной сети google. Сообщество — это место для обсуждения, т.е. в нем Вам могут написать о пожеланиях и найденных ошибках;
  • бета-версия. Приложение по прежнему не доступно через поиск на google play, но для его тестирования уже не обязательно вступать в сообщество, достаточно воспользоваться ссылкой (это очень удобно для поиска тестеров на сторонних сайтах, не связанных с google+);
  • рабочая версия. Приложение доступно через поиск, его могут скачивать, ставить плохие оценки и писать отзывы.

Ссылку на тестирование я разместил на нескольких тематических сайтах [3, 4, 5], игрушку попробовали, нашли один баг и даже приложили архив с забавным звуком топота ежика. В общем, я думаю, что публиковать ссылки на приложение нужно везде, это поможет сделать программу лучше.

Ссылки по теме:

  1. Разработка игры на С++, Qt // URL: https://pro-prof.com/archives/1520
  2. Регистрация разработчиков google play // URL: https://support.google.com/googleplay/android-developer/answer/6112435?hl=ru&visit_id=1-636242945450941482-2796141705&rd=1
  3. Форум Google Android — это не сложно // URL: http://forum.startandroid.ru/index.php
  4. Форум программистов — Обсуждение программ // URL: http://programmersforum.ru/forumdisplay.php?f=25
  5. 4PDA — Создание игр под Android // URL: http://4pda.ru/forum/index.php?showforum=550
  6. Описание проекта, исходный код // URL: https://pro-prof.com/about


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования