Ранее писали про этап подготовки к релизу. Сейчас расскажем про публикацию приложения в AppStore. Пошаговый гайд будет полезен новичкам, которые до этого не сталкивались с полицией нравов из Купертино.
Для того чтобы выложить приложение в App Store, потребуется оплаченный аккаунт разработчика, среда разработки XCode и исходный код вашего приложения. Разобьем процесс на четыре этапа:
- Настройка аккаунта
- Оформление приложения для магазина
- Настройка проекта, сборка и выгрузка
- Отправка на ревью
Настройка аккаунта
Все приложения перед выгрузкой в App Store должны быть подписаны сертификатом разработчика. Это нужно, чтобы пользователи App Store были уверены, что скачивают конкретное приложение от конкретного разработчика, а не подделку от чужого имени. Процедура подписывания (code signing) приложения позволяет операционной системе узнать, кто является разработчиком. И удостовериться в том, что приложение не было изменено с момента сборки. Точнее, с того момента, как разработчик его подписал. В этой процедуре участвуют три объекта: сертификат разработчика, AppID и Provisioning profile.
Сертификат
Сертификат представляет собой пару ключей асимметричного шифрования: приватный и публичный. В процессе сборки XCode формирует цифровую подпись для сборки на основании данных приватного ключа. Проверить подпись можно с помощью публичного ключа, который доступен и для Apple, который этот сертификат выдала.
Одного сертификата достаточно для выкладки неограниченного количества приложений.
Чтобы создать сертификат, нужно:
- Перейти на developer.apple.com, перейти в раздел «сертификаты», нажать на плюсик
- Выбрать тип сертификата Production — App Store and Ad Hoc
- Следуя приведенным инструкциям сформировать Certificate request и загрузить его на портал
Сохраните сгенерированный сертификат на компьютер, откройте его (дважды кликнув). Сертификат будет помещен в системное хранилище и доступен для XCode.
AppID
Это уникальный строковый идентификатор приложения среди всех приложений. Он нужен для однозначной идентификации во всех системах: iTunes Connect, App Store и пр. Он состоит из двух частей: TeamID и BundleID. TeamID — идентификатор разработчика, выдается Apple на этапе регистрации аккаунта разработчика и не меняется. BundleID задается разработчиком при регистрации приложения в аккаунте.
Создадим его:
- Перейдите в раздел AppIDs (ссылка), нажмите на плюсик справа вверху
- Заполните поле App ID Description — условное наименование приложения для разработчика, не видимое в App Store, например TestApplication
- Заполните поле Explicit App ID — тот самый BundleID, например ru.myStartup.testApplication
- В разделе App Services подключите те сервисы, которые понадобились в процессе разработки приложения. Если вы не понимаете, о чем речь — оставьте как есть.
Provisioning profile
Это профиль, который однозначно связывает AppID и сертификат разработчика (публичный ключ сертификата). В случае development provisioning profile он также содержит UDID всех устройств, на которых возможен запуск приложения.
Создадим его:
- Перейдите в раздел iOS Provisioning Profiles (ссылка), нажмите на плюсик справа вверху
- Тип профайла — App Store
- Затем необходимо указать AppID, для которого создается профайл — укажите раннее созданный AppID
- Следующий шаг — выбор сертификата. Отметьте галочкой сертификат, который мы создали ранее
- Последним шагом необходимо дать наименование профайлу, например, TestApplicationStoreProfile
Сохраните сгенерированный профайл на компьютер, откройте его, дважды кликнув. Теперь сертификат доступен для XCode.
Оформление приложения для магазина
Теперь нужно добавить приложение в iTunes Connect.
Переходим на https://itunesconnect.apple.com в раздел MyApps. Чтобы добавить приложение, нажмите плюсик слева вверху:
Заполняем открывшуюся форму:
- Указываем платформу — iOS
- Наименование приложения, будет отображаться в App Store. До 30 знаков.
- Основной язык приложения
- Выберите из выпадающего списка AppID приложения
*SKU — уникальный идентификатор для финансовых отчетов и аналитики. Можно сделать таким же как BundleID выше
Если все заполнено правильно, попадаем на страницу приложения.
На вкладке слева «Pricing and Availability» заполняем информацию о стоимости приложения в сторе. На вкладке слева с номером версии заполняем маркетинговую информацию:
- видео-превью и скриншоты для различных устройств
- ключевые слова для поиска в магазине
- описание
- возрастной рейтинг
- наименование правообладателя
- контактную информацию, на случай, если у ревьюера появятся вопросы.
О том, как подготовить маркетинговую информацию, мы рассказывали в предыдущей статье.
Также есть секция для того, чтобы можно было указать конкретную сборку, которую отправлять на ревью, а затем и в стор. Выбор недоступен до тех пор, пока мы не загрузили в iTunes Connect ни одной сборки приложения. Мы вернемся к этой секции позже:
Чтобы сохранить внесенные изменения, используйте кнопку Save наверху:
Настройка проекта, сборка и выгрузка
Откройте проект вашего приложения в XCode, перейдите к настройкам проекта. Необходимо, чтобы Bundle Identifier совпадал с BundleID, который вы указали при создании AppID. Также необходимо отключить функцию автоматического управления подписыванием в XCode. В выпадающем списке Provisioning Profile выберите тот, который недавно создали.
Обратите внимание: без всех необходимых иконок (в том числе иконка для магазина со стороной 1024 точки) сборка приложения не пройдет автоматическую проверку в iTunes Connect.
Теперь проект можно собрать и отправить в iTunes Connect. Для этого нужно нажать меню Product — Archive. По итогу сборки будет показано окно органайзера XCode, нажмите там кнопку «Upload To App Store»:
Открывается окно настроек выгрузки в App Store. Подробнее про bitcode, symbols stripping. Оставляем настройки без изменений.
На следующем шаге нужно выбрать provisioning profile из выпадающего списка подходящих:
Затем XCode подготовит архив для выгрузки в iTunes Connect. На этом экране обратите внимание на те параметры, что мы установили. Нажмите Upload.
В зависимости от скорости соединения нужно будет подождать некоторое время. Если все в порядке, XCode сообщит об успешном завершении выгрузки в iTunes Connect. Можно переходить к последнему этапу.
Отправка на ревью
В iTunes Connect на вкладке Activity можно увидеть отправленную сборку. Для проектов на Swift автоматическая проверка сборки занимает примерно полчаса. До тех пор сборка будет со статусом Processing:
После окончания проверки сборка доступна для выбора на странице информации о версии приложения:
Выбираем сборку:
После этого у приложения в iTunes Connect появится иконка. Сохраните изменения. Теперь можно отправить сборку на ревью.
Готово! Вы сделали все, что могли. Ждите ответа в течение нескольких дней. Не забудьте, что с 23 по 27 декабря iTunes Connect на каникулах. Разработчики не смогут обновлять и добавлять новые приложения в App Store и изменять ценники. Все остальные функции iTunes Connect будут доступны.