Хабрахабр

Как с первого раза попасть в AppStore: пошаговое руководство

Будем говорить о кейсах, цифрах, правилах и провалах, но начнем, вместе с Никитой Архиповым из студии Anvics, с темы прохождения релиза в App Store. К запуску курса «Fullstack мобильный разработчик», проводимого совместно с агентством Agima, мы подготовили серию материалов о том, как создавать приложения для мобайла. Готовьте лапки, и поехали! Разберем, как договориться с ревью-командой и избежать проблем, по шагам расскажем про техническую сторону — от создания сертификата до взаимодействия с Itunes Connect — и про то, о чем все молчат, — как же все таки пройти ревью с первого раза.

За отгаданный ребус вы получаете скидку 10%! Пы сы: а еще в этой серии материалов спрятаны скидки на курс: в каждом посте по мобильной разработке есть ребус, в котором зашифровано слово или название решения из области мобайла. Первый ребус ищите уже в этом тексте! Кстати, скидки суммируются, так что если соберете их все, то сможете отхватить курс по очень вкусной цене!

Настало время релиза — и вот тут вы и можете столкнуться с неожиданностями. Игра разработана, приложение создано, всё готово к запуску. Рассказываем, как договориться с командой, принимающей решения о публикации приложений в App Store. Когда вам нужно срочно зарелизиться, а приложение еще не готово к «честному» прохождению ревью, обойти ограничения, установленные Apple, трудно, но вполне возможно. А для тех, кто впервые выкатывает свой продукт в магазин приложений, разбираем технические детали ревью от создания сертификата до взаимодействия с Itunes Connect. Разбираемся в возможных причинах отказа или блокировки.

Читайте документацию

Кажется, для того чтобы подготовиться к ревью, достаточно пару раз прочесть App Store Review Guidelines, и всё будет в порядке. Но трудности могут начаться уже на этом этапе. Во-первых, на сегодня это уже тридцатистраничный талмуд. Во-вторых, почти в самом начале этого документа есть следующий пункт: «Мы отклоним приложение, содержимое которого нарушает границы».

Как однажды сказал американский верховный судья «Я пойму (эту границу), когда увижу ее». При этом, что это за граница, за которой остаются отклоненные приложения, — никто в точности не знает. Впрочем, пугаться заранее не стоит: несмотря на такую размытую формулировку, сам процесс ревью очень адекватный, и просто так в Apple не отказывают приложениям в публикации.

Настройте уведомления о связанных с этим новостях в поисковике или следите за профильными мероприятиями, на которых анонсируются нововведения. Не забывайте следить за обновлениями App Store Review Guidelines. Вам сможет серьезно помочь проект App Store Review Guidelines History, создатели которого маркируют все новые изменения: то, что добавляется к Руководству, отмечают зеленым цветом, а удаленное из него — красным. Например на недавней World Wide Developers Conference 2018 Apple представила ряд новых правил, касающихся политики конфиденциальности, таргетинга рекламы и работы приложений, связанных с криптовалютами. Рекомендуем подписаться на их рассылку.

Почему приложение могут отклонить

Достаточно четко помнить про основные мотивы возможного отказа, изложенные в том самом App Store Review Guidelines. Они довольно просты и вкратце звучат так:

  1. Никакого реалистичного насилия, порнографии, дискриминации, обмана. Помимо очевидных кровопролитных игр и откровенного ньюдс-контента, есть и более сложные кейсы. Так, например приложение AfterSchool, в котором американские школьники могли общаться в свободное от учебы время, из-за отсутствия контроля за его содержимым очень быстро наполнилось угрозами «шутинга» — стрельбы в школах, из-за чего Apple несколько раз удалял его из магазина. Впрочем, спустя некоторое время AfterSchool вновь возвращалось в App Store.
  2. Приложение должно быть полностью законченным и прошедшим баг-тестирование на стороне создателей. В App Store не примут приложения с явными ошибками, работающие слишком медленно по сравнению с аналогами и неожиданно вылетающие. Ревью-команда тестит приходящий к ним на рассмотрение софт вручную и очень тщательно. Из-за найденной ошибки приложение отклонят, а вам направят скриншот и описание произошедшего. Это можно рассматривать как возможность дополнительного тестирования, но злоупотреблять ей не стоит — если вы слишком часто будете отправлять на ревью откровенно недоработанные приложения, приоритетность рассмотрения ваших заявок ревью-командой существенно упадет.
  3. Разработчики должны предоставлять корректное описание всего функционала, а приложение должно работать в соответствии с этим описанием. В частности, это значит, что в нем не должно быть никаких скрытых функций, которые откроются пользователю только после установки. Например, если вы используете free-to-play-монетизацию, когда часть возможностей приложения будет доступна только на платной основе, обязательно расскажите про это в описании. Для полноценного соблюдения этого пункта не стоит забывать и о том, что приложение обязано запрашивать разрешение пользователя на использование его контактов, геолокационных данных, микрофона и камеры, а также на обращение к внутренним хранилищам телефона и аккаунтам в сторонних сервисах, в частности при авторизации.
  4. Нельзя использовать никакие приватные API, вызывать внутренние системные функции iOS, загрузку нового кода и тем более вирусов. Если предыдущий пункт обращен к добросовестным, но невнимательным разработчикам, то этот прямо адресован потенциальным злоумышленникам.
  5. Приложения, размещаемые в магазине Apple, не должны обладать слишком маленьким функционалом. Пункт 4.2 гайдлайнов гласит: «Если приложение не несет конкретной пользы и не воспринимается как полноценный продукт, оно не подходит для App Store». Так ревью-команда добивается гарантии того, что всё, предлагаемое пользователю, окажется полезным для него. Типичным примером может служить запрет на публикацию оберток для браузера, изменяющих только его внешний вид, но не добавляющих никаких новых возможностей.
  6. Приложение не должно нарушать никаких законов во всех странах, для которых оно будет доступно. Именно ссылаясь на этот пункт, Роскомнадзор требовал от Apple удаления Telegram из каталога приложений.
  7. В том числе приложение не должно нарушать авторских прав. Возникает вопрос: « как же это правило обошли „ВКонтакте“ с их объемом нелегальной музыки и видео?» Действительно, приложение VK долгое время имело возможность нелицензионно стримить такой контент. Но примерно 4 года назад в Apple стали серьезнее относиться к нарушению авторских прав в других странах (до этого они смотрели, по крайней мере на Россию, сквозь пальцы). Как раз в этот момент «ВКонтакте» (и другие приложения с пиратской музыкой) удалили из стора и вернули только после обновления, в котором нарушающий авторские права контент уже не был доступен. Сейчас VK снова имеет функционал проигрывания музыки, но теперь уже вполне легально — это ограниченные «демо-прослушивания», а полные версии плейлистов доступны в отдельном, платном приложении, отчисляющем средства музыкантам.

Здесь важно отметить, что ревью-команда Apple при отклонении заявки всегда опишет причину и пояснит, что нужно изменить. Но этим опять же не стоит злоупотреблять: пара неудачных попыток — и в следующий раз ваш контент подвергнется еще более внимательному досмотру.

Личный опыт

Мы сами в Anvics в разное время сталкивались при прохождении ревью с проблемами не только из этого списка.

Оно содержало только функции просмотра VR-видео и обратную связь с представителями бренда. Однажды мы запускали небольшое промоприложение для рекламной кампании
одного крупного бренда. Но оказалось, что для того, чтобы успешно пройти ревью, достаточно было добавить кнопки «Поделиться в социальных сетях» и галерею. Команда ревью посчитала, что приложение недостаточно функционально, и отклонила его. После таких косметических (на общем фоне разработки) правок приложение спокойно прошло проверку.

Подготовить его можно в свободной форме: «Я, такой-то, генеральный директор, разрешаю использовать свой бренд „Бренд“ для приложения „Приложение“ в аккаунте „Аккаунт“». Полезно было узнать и про то, что для брендированных приложений, если они публикуются не с энтерпрайз-аккаунта самой марки, необходимо подтверждающее письмо от представителей бренда, позволяющее использовать название, логотип и другие фирменные атрибуты марки для разработки и реализации приложения. Отсканируйте этот документ и прикрепите его к заявке на ревью.

Например, мы однажды столкнулись с тем, что все сторонние сервисы, к API которых обращается приложение, должны поддерживать протокол IPv6. Встречаются и технические особенности, которые можно просто не заметить. 1. И, само собой, в них не должно содержаться никаких URL-адресов в виде 1. 1. 1. Будьте внимательнее к таким деталям, это позволит сэкономить ваше время.

Техническая сторона ревью

Как пройти ревью:

  • оплатите аккаунт (стандартный за 99$ или Enterprise за 299$ в год);
  • убедитесь, что приложение полностью готово и прошло тестирование;
  • создайте сертификат;
  • получите идентификатор;
  • используя их, сформируйте профиль приложения;
  • заархивируйте в Xcode сборку приложения;
  • отправьте его в Itunes Connect — сервис, через который происходит все взаимодействие разработчика с App Store.

Но пошаговым руководством по тому, как отправить приложение на ревью, делимся уже сейчас. На курсе «Fullstack мобильный разработчик» мы подробно объясняем, как пройти путь от идеи приложения до релиза в App Store, и, конечно, затрагиваем все этапы ревью более подробно. (И не забывайте про ребус со скидками — он уже близко!)

Подписываем приложение

Механика создания подписи может вызвать сложности у тех, кто раньше не сталкивался с этим, поэтому расскажем про нее подробно. У приложений есть сертификаты, идентификаторы и профили.

  • Сертификат связан с компьютером и авторизует его для подписи приложений.
  • App ID – уникальный идентификатор приложения. Кроме того, он хранит список используемых приложением технологий (например, In app purchase, push-уведомления и прочее).
  • Профиль — «объединение» сертификата и идентификатора, используется для подписи приложения с конкретного компьютера. Также в нем указывается, каким образом будет распространяться приложение: development (запуск приложения с компьютера на свое устройство), App Store (отправка приложения в официальный магазин Apple) или Ad Hoc (дистанционная установка приложения на устройства, без использования App Store).

Для подписи приложения сначала необходимо зарегистрировать компьютер и получить сертификат, потом сформировать идентификатор приложения, а в конце создать профиль для отправки в App Store. Разберем пошагово все этапы.

Шаг первый: создание сертификата

Когда мы уже зарегистрировались и оплатили аккаунт, входим в портал разработчика Apple.

Выбираем Certificates, Identifiers & Profiles:

Видим меню сертификата:

Нажимаем на пиктограмму «+» справа от надписи iOS Certificates:

Выбираем App Store and Ad Hoc, нажимаем Continue:

Ознакомившись с описанием того, как будет создан запрос на создание сертификата, снова нажимаем Continue:

Для этого запускаем программу «Связка ключей»: Теперь нам нужно создать ключ на компьютере.

В верхнем меню нажимаем «Связка ключей» –> «Ассистент сертификации» -> «Запросить сертификат у бюро сертификации...»:

Указываем email нашего аккаунта, в общем имени пишем любое имя, адрес email БС оставляем пустым, в запросе выбираем «Сохранен на диске»:

После сохранения переносим его на кнопку Choose File в портале Apple: Нажимаем «Продолжить» и сохраняем файл с расширением .certSigningRequest в удобном месте (например на рабочем столе).

Убедитесь, что в нем заданы данные «Связка ключей — вход» и нажмите «Добавить»: Нажимаем Continue, на следующем экране — Download и дважды кликаем на скачанный файл — после этого должно стать активным окно «Связки ключей» и появиться «Добавление сертификатов».

Сертификат для компьютера готов.

Шаг второй: добавление идентификатора

В меню на портале Apple выбираем пункт App IDs:

Так же как и у сертификатов, кликаем пиктограмму с плюсом:

App ID копируем из Xcode-настроек вашего проекта: На открывшейся странице обязательно заполняем поля Name (название приложения — под ним оно будет фигурировать только на портале Apple) и App ID.

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

Идентификатор приложения готов. После этого внизу страницы нажмите Continue, на следующем экране — Register и на последнем — Done.

Шаг три: создаем профиль

В меню перейдем в Provisioning Profiles -> Distribution:

Кликаем привычную уже пиктограмму «+» и в открывшейся вкладке выбираем App Store:

На следующем экране выбираем зарегистрированный нами идентификатор приложения:

Теперь выбираем сертификат, а затем вводим название для профиля (под этим названием он будет показываться в xСode — то есть это рабочее название, видимое только вам и представителям Apple):

После этих нехитрых действий Xcode должен стать активным окном. Нажимаем Continue, на следующем экране — Download и дважды кликаем по скачанному файлу. Всё готово: мы создали все необходимые файлы для подписи нашего приложения.

Регистрация в iTunes Connect

Прежде чем отправлять приложение в App Store, нужно зарегистрировать его в iTunes Connect. Для этого открываем сайт appstoreconnect.apple.com и после авторизации с тем же логином/паролем, что и на developer.apple попадаем на главный экран:

Выбрав «Мои приложения», нажимаем на пиктограмму «плюс» и выбираем «Новое приложение»:

В поле SKU вводим идентификатор приложения и приписываем символы ". Заполняем все поля в открывшемся окне. SKU":

Нажимаем «Создать» — теперь приложение зарегистрировано.

Архивация сборки приложения

Возвращаемся к Xcode с проектом:

После этого вам откроется окно для ввода логина и пароля: Отключаем Automatically manage signing, нажимаем на None напротив Team и в выпадающем списке выбираем Add account.

После этого в настройках проекта выбираем добавленную команду.

Для этого открываем вкладку Build Settings (убедитесь, что чуть ниже выбрано All): Теперь осталось установить в Xcode профиль и сертификат.

Прокручиваем до секции Signing и выбираем там наши сертификат и профиль:

Далее Target -> Generic iOS Device:

Нажимаем Product -> Archive:

Ждем, когда после архивации (она может длиться до получаса) откроется окно:

Нажимаем Upload to App Store…

Кликаем Next, после чего Xcode потратит немного времени на прогрузку и выдаст вам следующее окно:

После успешной загрузки Xcode примерно через 30–60 минут сборка появится в appstoreconnect. Здесь выбираем наш сертификат и профиль, нажимаем Next, потом Upload и ждем!

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

Помните, что спрятанное в нем слово или понятие относится к мобильной разработке, учитывайте, что английский здесь может мешаться с русским, и главное — не забывайте, что мы будем тщательно следить за комментариями и удалять из них подсказки и ответы! А вот и ребус! Скидки за разгаданные ребусы (всего их будет пять, по числу материалов) суммируются между собой, но не со скидками на сайте. Промослово, зашифрованное в ребусе, следует назвать, когда с вами свяжется наш менеджер после того, как вы отправите заявку на курс. Слишком медлить не стоит — промо работает до 30 августа 2018 года.

Кружным путем

У iOS, в силу специфики закрытой платформы, есть только один официальный магазин приложений — App Store. Если сделать jailbreak, можно, конечно, использовать неофициальную Cydia, но в последние годы она все больше теряет популярность, а значит, имеет не слишком высокие показатели пользовательской активности. Такой вариант может быть актуален для тех, кто не хочет сталкиваться с диктуемыми Apple ограничениями, но обычному разработчику это не нужно.

По нашему опыту, если приложение не очень сильно нарушает правила, то можно аккуратно попросить пропустить его, пообещав исправиться в следующей версии, а необходимость срочного попадания в Store мотивировать, например, тем, что уже на завтра запланировано мероприятие, для которого необходимо использование этого приложения. Если вам необходимо срочно зарелизиться, обойти ограничения, установленные Apple, трудно, но вполне возможно. В целом, команда ревью достаточно дружелюбная: ее представители готовы идти навстречу разработчикам, а при необходимости оперативного решения проблемы с ними можно даже созвониться.

Однако, как мы и говорили выше, если вы будете систематически нарушать правила и отправлять одну за другой новые нестабильные сборки, Apple может применить к вам санкции.

Теоретически можно заслужить и блокировку аккаунта, но на практике эта мера на предрелизном этапе обычно не применяется. Каждое последующее ревью сборок, нарушающих правила App Store, приведет к увеличению его сроков.

Жесткие нарушения вроде кражи данных могут привести даже к удалению аккаунта. Если же ревью-команда обнаружит обман пользователей или нарушение правил в уже выпущенном приложении, оно удалится из каталога.

Сроки ревью

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

Если вы разрабатываете приложения под несколько платформ — помните, что в Google Play ревью обычно занимает несколько часов, поэтому в первую очередь, конечно, нужно загружать iOS-версию, если на iOS и Android приложение должно выйти примерно в одно время.

И не забывайте про вежливость: внимательное чтение гайдлайнов, самостоятельное качественное тестирование и внимательное отношение к советам ревью-команды обеспечат вам установление с ними хороших отношений и легкое прохождение ревью с первого раза. Как видите, в прохождении ревью нет ничего страшного: представители Apple дружелюбны, правила сравнительно гибки, а сроки ревью невелики.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»