- Получение Apple ID
- Регистрация аккаунта разработчика
- Подтверждение заявки службой Apple
- Оплата аккаунта
- Настройка mac
- Создание App ID
- Создание Provision profile
- Itunes Connect
- Сборка приложения в Сборщике мобильных приложений
- Загрузка ipa в Itunes connect
- Создание описания приложения
- Отправка на модерацию
- Выводы
- Регистрация аккаунта в Google
- Регистрация аккаунта разработчика
- Оплата аккаунта
- Сборка приложения в Сборщике мобильных приложений
- Создание описания приложения
- Отправка на модерацию
- Выводы
Инструкция не затрагивает тему детальной настройки Сборщика мобильных приложений, Beta тестирования (XFlight, Ad Hoc), App Store Optimization (ASO), публикации коммерческих приложений.
1. Общие моменты
1.1. Настройка Сборщика мобильных приложений
Детальная настройка Сборщика хорошо описана во встроенной справке Сборщика. В публикации рассмотрены только некоторые моменты.
- JDK версия 8.0 (версия без демок). С 10+ версией на момент написания публикации Сборщик работал некорректно. Инструмент необходим как для сборки ipa так и для apk файлов.
- SDK 26+. Раньше был SDK Manager, с помощью которого можно было скачать и установить необходимый SDK, но на данный момент Manager интегрирован в Android Studio. При запуске Android Studio появится окно приветствия, в котором доступен SDK Manager.
По умолчанию устанавливается SDK последней версии, но если это не так, то можно выбрать нужный SDK и нажать Apply. В этом же окне скопировать путь к папке с SDK и указать его в Сборщике.
Инструмент необходим только для сборки apk.
- PuTTY. Инструмент необходим только для сборки ipa.
На момент написания публикации версия Сборщика мобильных приложений, которая собирает приложение с учетом требований XCode 10, Android SDK 26, является 2.0.7.54. Версия мобильной платформы 8.3.12.89.
2. Публикация App store
2.1. Получение Apple ID
Зарегистрировать новый Apple ID. При регистрации лучше указать реальные данные, так как это поможет в будущем решать какие-либо вопросы с Apple намного быстрее.
2.2. Регистрация аккаунта разработчика
Авторизоваться на сайте разработчиков Apple с помощью созданного Apple ID. Согласиться с условиями программы, после чего перейти к своему аккаунту. На главной странице аккаунта перейти по ссылке Join the Apple Developer Program.
Далее нажать на кнопку Enroll.
Откроется страница, на которой описаны условия присоединения к программе как для инди-разработчика так и для организации. После ознакомления с условиям перейти по ссылке Start Your Enrollment.
Для продолжения необходимо чтобы аккаунт Apple ID имел двух-факторную аутентификацию. Для этого нужно авторизоваться на сайте для управления Apple ID. В разделе Security включить двух-факторную аутентификацию.
После включения двух-факторной аутентификации в аккаунте разработчика будет доступна возможность выбора типа аккаунта - инди-разработчик или организация.
2.2.1.Оформление заявки от имени организации
Если Вы регистрируете организацию, то нужно указать следующие реквизиты:
- ИНН организации
- Название организации с юридической формой (ООО, ОАО и т.д.)
- Телефон организации
- Сайт организации
- DUNS номер
- Кто Вы - собственник или лицо, которому доверена регистрация
- Ваше имя и фамилия
- Ваш номер телефона
По DUNS номеру можно однозначно идентифицировать организацию и получить по ней открытые данные (название, юр. адрес, количество сотрудников и т.д.). Получение такого номера платно, для России стоит примерно 12000 руб, платеж единоразовый. Получение занимает до 10 рабочих дней после оплаты. В моем случае оплата была 300$, платеж ежегодный и получение заняло 2 рабочих дня. После того, как я указал полученный DUNS номер в заявке на регистрацию аккаунта разработчика, обнаружилось, что адрес компании был неверный (адрес определяется по DUNS). Попытки обращения в службу регистрации DUNS желаемого результата не дали и только на 4 день я написал в службу поддержки Apple - вопрос был решен за пару часов - в заявке появились поля для указания адреса вручную.
Также есть способ получить DUNS номер бесплатно (за информацию спасибо Tahallus).
2.2.2. Оформление заявки как физ. лицо
Если регистрируетесь как инди-разработчик (физ. лицо), то достаточно указать имя, фамилию и номер телефона.
2.2.3. Подтверждение заявки службой Apple
После того, как заявка была принята, на почту придет уведомление с номером заявки. Заявка рассматривается до 10 рабочих дней (в моем случае это было 2 дня). В течении этого времени, на указанный при регистрации номер телефона, поступит звонок. Сначала будет звонить робот и будет возможность назначить время для разговора. Если же звонок пропустите, то Вам перезвонят (мне перезванивали 5 раз) . После робота Вас переключат на реального человека, который задаст несколько вопросов на английском языке: как Вас зовут, кто еще может поговорить в случае надобности и его контактный номер. Звонящий говорил разборчиво и медленно.
Если заявка одобрена, то через некоторое время после звонка на почту придет уведомление, о том, что "заявка одобрена и ожидает оплаты".
Оплатить можно банковской картой. Сумма платежа 99$. Платеж ежегодный.
После оплаты аккаунта необходимо выполнить некоторые действия на Mac компьютере.
- Меню Apple > Системные настройки > Общий доступ. Включить общий доступ и указать пользователя, под которым будет доступен сетевой вход по ssh.
- Открыть XCode, меню XCode > Preferences > Accounts, авторизоваться под созданным Apple ID и нажать Manage Certificates.
В открывшемся окне добавить сертификат для iOS Distribution и iOS Development.
- Открыть Spotlight и набрать keychain, далее открыть найденную утилиту и в Связке Вход найти полученный сертификат для Distribution и перенести его в Связку Система, попутно соглашаясь с сообщениями системы.
В личном кабинете разработчика в разделе Certificates, IDs & Profiles > Identifiers > App IDs создать новый App ID
- App ID Description название приложения, по которому можно отличить App ID в личном кабинете
- App ID Prefix нужно будет указать в Группе разработки в Сборщике мобильных приложений
- App ID Suffix выбрать Explicit App ID и в поле Bundle ID написать что-то типа ru.mycompany.mysuperapp. Потом указанный Bundle ID потребуется указать также в Сборщике (пункт 2.8). В разделе App Services нужно отметить необходимые права для приложения (по умолчанию будут отмечены Game Center и In-App Purchase - скорей всего этого будет достаточно)
2.6. Создание Provision profile
В личном кабинете разработчика в разделе Provisioning Profiles создать новый профиль с типом Distribution App Store
Далее выбрать созданный App ID и Certificate (его создали в XCode) и дать название новому профилю. Далее нажать Download и сохранить полученный профиль в файл. В Сборщике создать новый профиль обеспечения, в котором указать только что загруженный файл профиля Apple.
Авторизоваться в сервисе ITunes Connect, используя Apple ID. В разделе Мои приложения создать новое приложение.
- В разделе Информация о приложении найти Apple ID (он будет создан автоматически) и сохранить его куда-нибудь, так как его нужно будет указать в Сборщике в пункте 2.8.
Указать ID пакета, который должен совпадать с Bundle ID из пункта 2.5, заполнить остальные поля, а также обязательным к заполнению будет URL-адрес политики конфиденциальности (в качестве примера можно посмотреть описание политики у приложений 1С в App Store)
- Раздел Ценообразование и доступность - здесь нужно указать цену продажи, список стран, в которых будет доступно приложение
- Раздел Приложение для iOS - здесь необходимо загрузить скриншоты приложения. Разрешения скриншотов должны быть точно такими же как этого требует ITunes Connect, поэтому можно использовать симулятор в XCode и сделать скриншоты для разных устройств (меню Simulator>Edit>Copy Screen). Также нужно будет указать URL-адрес службы поддержки (я указывал адрес сайта на котором разместил также политику конфиденциальности) и авторские права на приложение (я указал название компании, от имени которой публикуется приложение). Не получится указать конкретную Сборку, так как приложение нужно загружать в ITunes Connect отдельно (пункт 2.9).
2.8. Сборка приложения в Сборщике мобильных приложений
В Сборщике необходимо выполнить еще ряд настроек:
- В настройках Параметров сборщика указать имя компьютера Mac, имя пользователя и пароль из пункта 2.4.
- Создать Поставщика, у которого на закладке Параметры для ОС iOS указать префикс идентификатора приложений из пункта 2.5 (Bundle ID), но не весь, а ту часть, которая идет до названия приложения (в данном случае ru.mycompany). Добавить сертификат разработчика (будет произведено обращение к Mac), указать параметры доступа к Itunes Connect и создать Группу разработчиков, в которой указать Идентификатор группы разработчиков из пункта 2.5 (App ID Prefix) и Способ распространения Для распространения в Apple AppStore
- Создать группу Мобильных приложений, в которой указать Поставщика, Идентификатор мобильного приложения (Bundle ID), но не весь, а ту часть, которая является названием приложения (в данном случае mysuperapp). В итоге должен получиться идентификатор точно такой же как и Bundle ID. Затем добавить конфигурацию (файл xml, который предварительно нужно выгрузить в Конфигураторе). На закладке для ОС iOS указать Группу разработчиков, Профиль обеспечения и Идентификатор в App Store из пункта 2.7 (Apple ID).
- Создать элемент в только что созданной группе Мобильных приложений
После этого нажать Собрать приложение и подождать окончания операции. Если все пройдет успешно, то на выходе получится ipa файл и два проекта для XCode.
2.9. Загрузка ipa в ITunes connect
Небольшое отступление. На этом моменте у меня ушло много времени. В начале публикации я указал версию Сборщика и Мобильной платформы, но когда я только начал заниматься этим вопросом этих версий еще не было и на этапе сборки ipa файла в Сборщике я получал много разных ошибок. Сборщик собирал проекты XCode, но ipa файл собрать никак не получалось. Поэтому я решил использовать напрямую XCode, чтобы сначала получить подписанный файл архива xcarchive, а затем из него получить ipa. Это сделать удалось сразу, но потом нужно использовать Application Loader, который загрузит ipa в Itunes Connect. Вот на этом этапе приложение не проходило валидацию, одна из ошибок была связана с разрядностью приложения. Все найденные в Интернете решения этой проблемы испробовал, но безрезультатно. Потратил на это примерно 5 дней, после чего вышла вышеупомянутая сборка Мобильной платформы и Сборщика, с помощью которых ipa файл собрался без проблем.
Для последующей загрузки ipa файла в Itunes Connect необходимо нажать кнопку Загрузить в магазины. Затем перейти в аккаунт Itunes Connect и в разделе Версии будет доступен выбор версии приложения.
2.10. Отправка на модерацию
Если все шаги по заполнению описания приложения были выполнены, то можно отправлять приложение на модерацию. Проверка приложения может занимать до 10 рабочих дней (в моем случае это было 2 дня) и если в описании приложения была допущена ошибка, то приложение не пройдет модерацию и цикл отправки на модерацию придется начинать заново. После прохождения модерации приложение получит статус Готово к продаже, но в магазине его не будет.
Может пройти до 24 часов, пока оно там появится. Если пройдет более 24 часов и приложения не будет, то можно обращаться в службу поддержки Apple.
Было потрачено 399$ и по времени весь процесс занял около месяца. Если что-то идет не так, то всегда можно обращаться в службу поддержки Apple.
3. Публикация в Play market
3.1. Регистрация аккаунта в Google
Зарегистрировать новый аккаунт Google
3.2. Регистрация аккаунта разработчика
Авторизоваться на сайте разработчиков Google с помощью созданного аккаунта. Принять условия присоединения к программе разработчиков.
Нажать кнопку Оплатить. Оплата доступна только с помощью банковской карты. Сумма платежа 25$. Платеж единоразовый.
3.4. Сборка приложения в Сборщике мобильных приложений
В Сборщике необходимо выполнить еще ряд настроек:
- Создать Поставщика, у которого на закладке Параметры ОС Android необходимо указать префикс идентификатора приложений, получить ключ разработчика средствами Сборщика. Также есть возможность указать параметры доступа к консоли разработчика, но в Сборщике видимо указана неверная ссылка для проверки введенных данных, поэтому подключиться к консоли разработчика из Сборщика не получится
- Создать группу Мобильных приложений, в которой указать Поставщика, Идентификатор мобильного приложение (префикс от Bundle ID), но не весь, а ту часть, которая является названием приложения (в данном случае mysuperapp). В итоге должен получиться идентификатор точно такой же как и Bundle ID. Затем добавить конфигурацию (файл xml, который предварительно нужно выгрузить в Конфигураторе).
- Создать элемент в только что созданной группе Мобильных приложений
После этого нажать Собрать приложение и подождать окончания операции. Если все пройдет успешно, то на выходе получится два APK файла для разной архитектуры. Нужен тот, который для ARM.
3.5. Создание описания приложения
В консоли разработчика в левом меню выбрать Все приложения и нажать кнопку Создать приложение. Система попросит указать язык и название приложения. После этого приложение будет создано и можно перейти к его настройке.
С настройкой разделов Store listing, Content Rating и Pricing вопросов возникнуть не должно. После полной настройки раздела он будет выделен зеленым цветом.
Затем в разделе App releases нажать Создать релиз. Далее необходимо загрузить файл APK, который был собран Сборщиком. После загрузки файл будет проходить валидацию и если при сборке использовалась старая версия мобильной платформы, то будет ошибка о том, что SDK приложения не соответствует минимально допустимому.
После того, как все 4 раздела настроены, приложение можно отправлять на модерацию (будет доступна соответствующая кнопка в разделе App releases). У меня процесс модерации занял около 2-х часов.
3.7. Выводы
Было потрачено 25$ и по времени весь процесс занял около 4 часов.