Публикация приложения в App Store: популярные причины отказов и рекомендации по их избежанию

5316

Как правильно работать с магазином приложений App Store, о каких подводных камнях нужно знать и как опубликовать свой апп максимально быстро - в колонке AIN.UA.

Скорость рассмотрения

За последнее время App Store сильно ускорил сроки рассмотрения приложений с 2+ недель до (иногда) нескольких часов. По своей статистике Apple принимает 50% решений в 24 часов, и 90% — в течение двух суток. Насколько нам известно, есть несколько центров с командами поддержки, но наши приложения чаще всего рассматриваются ночью, а на звонках, судя по акценту, мы общались с индусами. Если ваш вопрос не решается по почте – можно ожидать звонка, скорость реакции на вопросы обычно около суток.

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

Покупки в приложении

Один из самых острых вопросов для бизнес-модели приложения – это то, каким образом можно будет совершать в нем покупки. Есть 2 основных варианта:

  1. Через in-app purchase с карты, привязанной к аккаунту iTunes. Это проще для пользователя и подходит для digital goods, вроде платных функций, контента или подписок. Облагается комиссией площадки 15-30%.
  2. Покупки реальных товаров и услуг с карты или другого платежного метода, например, заказ такси или бронирование гостиницы через платежный шлюз, например Stripe. Комиссия там меньше, обычно – 2-5%.

Дело в том, что в ряде случаев схема не полностью однозначна. Например, если у вас есть уже веб-приложение с платной подпиской, вы можете попытаться избежать комиссии магазина. Или в нашей практике был случай, когда мы в приложении оказывали недорогую услугу – ретушь фото, руками настоящих дизайнеров. Нам на старте не было важно экономить комиссию, а скорее проверить спрос и снизить барьеры. Мы выбрали in-app purchases. Но магазин сам отклонил приложение в таком виде, заставив привязывать оплату картой, через Stripe. Стоит почитать условия на сайте Apple и форумы, например, в Quora или StackOverflow.

Контент

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

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

Есть также возрастные ограничения и цензы, которые не всегда очевидны. Например, мы делали сайт с объявлениями, и там был раздел с женским бельем и соответствующие картинки товаров. Команда ревью попросила нас из-за него изменить возрастной рейтинг приложения. Если у вас есть контент, генерируемый пользователями, и они могу дать туда что-то нецензурное, вас могут наказать. 

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

Предварительное тестирование

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

Важно всегда тестить релизную сборку с testflight (а не девелопмент-сборку) – там включена оптимизация. Также не используйте beta/release candidate XCode и macOS. Работая с большим количеством билдов для их автоматизации, мы используем такие инструменты, как BitRise или FastLane.

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

Дело в том, что разработчики часто не имеют набора устройств и не тестируют приложение на iPad или iPhone 4s, а команда магазина не редко, например, использует айпад и видит там съехавшую верстку. По гайдлайнам – все элементы интерфейса должны быть доступны пользователю, и даже если сам дизайн привлекательный без такой технологической поддержки — можно получить reject. А родные компоненты везде работают стабильно.

Сервер и приложения третьих сторон

Один из недавних кейсов с ошибкой – это поддержка работы в IPv6-сетях, которые Apple ввел с 2016 года. Команда возвращала билд с комментариями, что приложение не работает на IPv6-сети, и разработчики пытались поднять у себя инфраструктуру такой сети и найти ошибку. Но на самом деле, это не было специфично именно для IPv6, а могло быть связано со сбоем работы бекенда или если разработчик забыл дать открыть доступ к нему команде ревью Apple, не поменяв настройки безопасности.

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

Технические особенности подготовки в релиз

Одна из частых ошибок в технических данных – это использование IDFA-идентификатора (это уникальный ID устройства) без показа рекламы. Проблема также может быть в том, что он иногда является частью других использованных библиотек, например Google Analytics до недавнего времени.

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

Отдельно есть ряд ограничений на работу с iCloud. Только контент, созданный пользователем, должен синхронизироваться с iСloud, и иконки приложения. Если у вас используется большое количество временных файлов, не забудьте отключить их синхронизацию, а иконка приложения должна быть оптимизирована до максимум 200 Кб.

Иногда не получается напрямую залить билд из XCode и не понятна суть ошибки. В таких случаях мы используем Application Loader с сайта developer.apple.com.

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

И последнее, но иногда критически важное. Если у вас нельзя открыто зарегистрироваться – обязательно предоставьте аккаунт с тестовыми данными для команды Apple. Без них это почти 100% возврат.

Итог

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

Автор: Кирилл Кириков, технический директор Seductive Mobile

Оставить комментарий

Комментарии | 0

Поиск