Connect with us

Магазины приложений

Путешествие моего первого приложения: как пережить 5 отказов App Store

Федерико Занетелло из Kimchi Media рассказывает свою непростую историю взаимоотношений с App Store.

Ксения

Опубликовано

/

     
     

Федерико Занетелло из Kimchi Media рассказывает свою непростую историю взаимоотношений с App Store и о трех месяцах отказов от команды Apple.

pvn6-mdt

В прошлом году я наконец решился: я купил Macbook и начал изучать Swift и разработку iOS приложений.

1-qjFwSZW0QnO7ffJJbxlEMA

Типичный iOS разработчик в первый день своего обучения

Спустя 3 месяца* я отправил свое приложение в App Store: я был очень горд собой!

* Уточнение: я инженер ПО, у вас это может занять больше времени.

Swift – потрясающий язык и, смирившись с тем, что я не смогу знать в Cocoa Touch всего, никто не мог удержать меня от создания и запуска моего приложения. Как же я был неправ.

Приложение

Краткое описание приложения Stream for Twitter, которое я запустил:

Приложение не загрузилось :-(

Stream for Twitter показывает вам новые твиты со всего света в реальном времени: просто добавьте всё, что вам интересно и будьте в курсе событий.

Отказ первый

1-3suVjAYksHjPKghXF3C16A

Видите короткое сообщение выше? Вот таким образом Apple уведомляет вас о своем «нет», и что ваше приложение пока что не попадает в App Store.

Мое приложение довольно простое: я был сильно удивлен, когда проснулся и увидел отказ в своей почте.

Оказывается, review-команде даже не пришлось тестировать приложение, чтобы отклонить его: в описании приложения среди других сравнений я написал: «iOS vs. Android»:

3.1 Описание приложения не должно упоминать названия других мобильных платформ (Android, Windows Phone …).

В App Store Review 3.1 Guideline все предельно ясно: это отклонение – целиком моя ошибка. К счастью, код менять не нужно, меняем описание и снова отправляем приложение!

Отказ второй

1-FGJTXDIgE3-WP8RCPpYk9w

1-ULBlQBsjtUmGZ5EV_z0WAg

На этот раз review-команда сослалась на App Store Review 14.3 Guideline:

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

Мое приложение не позволяет пользователю генерировать контент, оно просто предоставляет контент из Twitter (где вы можете пометить/блокировать всё, что хотите).

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

Если бы пользователь пометил твит, то тот твит бы был уже старым: он бы никогда не отобразился в Stream ещё раз!

Я думал, что правило 14.3 не применимо к моему приложению, поэтому я написал апелляцию, включив в неё все вышеперечисленные причины:

1-FGJTXDIgE3-WP8RCPpYk9w (1)

Команда App Review ответила на мою апелляцию в течение нескольких часов.

Ответ на апелляцию:

1-gkc3vsjEspA7kP8sKxxe7Q

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

К моему счастью, Twitter API предлагает всё, что мне нужно:

  1. Механизм пометки  контента / сообщения о сомнительном контенте;
  2. Фильтр для правильного контента.

Пришло время для очередной подачи на рассмотрение!

Отказ третий

1-ug75dsS0emFao1Td8IjNSw

В ожидании каждой проверки я продолжал добавлять больше и больше функций в приложение, в какой-то момент я даже добавил нерасходуемые встроенные покупки.

Это было ошибкой, потому что встроенные покупки стали причиной нового отклонения из магазина.

Все встроенные покупки Stream были нерасходуемыми: после того, как пользователь покупал однажды, эта покупка могла быть приобретена (снова) сколько угодно раз уже бесплатно.

Я хотел добавить в приложение как можно меньше UI элементов: поскольку эти встроенные покупки могли быть «куплены» много раз бесплатно, я не сделал кнопку Restore.

Сообщение от review-команды:

1-p0EIR3_7iwwp7vam80Dbvg

После объяснения моей вышеизложенной логики, мне ответили:

1-PGrLYMVQjKcP9scafZtwtQ

Усвоенный урок: кнопка Restore должна быть!

На этот раз, вероятно из жалости, рецензент посоветовал мне подать заявку на ускоренную проверку (через форму Expedited Review Request) после того, как я добавил кнопку Restore.

1-EnPxdY_95DFZ1tfBtKt_Yg

Добавление кнопки Restore было самым быстрым: я просто перетащил кнопку в раскадровку, написал три строчки кода, соединяя UIButton с классом UIViewController.

1-g50GMbcyLgNd2pzbozW35Q (1)

Похоже, команда Expedited Review не проявила такого же сострадания как предыдущий рецензент. Мне пришлось ждать очередного раунда App Reviews.

Отказ четвертый

Тогда я засыпал с хорошим предчувствием, что я проснусь, а мое приложение одобрено, ха-ха, мечтатель:

1-p8xhps1zAVXMgpkTJXTwrw

На этот раз рецензент думал(а), что ему нужна особая Twitter авторизация, чтобы использовать приложение:

1-3-8-o11aXePd17bWplG2Eg

После того как я объяснил, что пойдет любой Twitter аккаунт, приложение снова было отправлено на рассмотрение и… было одобрено!

Это значит…что я, наконец, сделал это?

1-O3qx2Z2h84m35INCU9YDxw

1-ivTCgVGxY-Zp5ZAdEQu6Aw

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

1-m3hYYUNDm7siEkyg6rdVZQ

Поменял название, вперед за новым одобрением!

Отказ пятый

1-ar7Ce7eEFSKHdtmTDvONVw

А вы ожидали чего-то иного?

Рецензент (предполагаю, новичок) использовал iPad и заявил, что он не может пройти экран Twitter авторизации: это экран, который возникает, когда вы запускаете Stream в первый раз.

Проблема была неясной, потому что рецензент неаккуратно обрезал скриншоты и написал сомнительное сообщение.

После обмена несколькими письмами я записал работу Stream на iPad на видео: приложение снова отправилось на рассмотрение и затем было принято!

Усвоенный урок: не думайте, что все члены review-команды знают, что делают.

Выводы:

1--CPCmen2DvSIKwunGEtL-g

После создания приложения всего лишь за 3 месяца, мне пришлось наслаждаться отказами еще 3 месяца. Это время, которое понадобилось на то, чтобы приложение наконец попало в App Store.

В течение этого времени я многое узнал: я надеюсь, что дал вам общее представление о моих неудачах и азарте, сопровождавших меня в этом путешествии.

Я бы хотел дать вам несколько советов для вашей следующей публикации приложения (<сарказм>после всего этого я  теперь эксперт</сарказм>):

  • Прочитайте App Store Review Guidelines: этот список гораздо короче чем я думал, и это спасет вас от нескольких отказов;
  • Размещая новую версию, задействуйте поля App Review Information для того, чтобы рецензенты были в курсе, что изменили/исправили/обновили;

1-s174XXXYBC1Gjs-feiy1Ew

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

Удачи вам с новой публикацией!

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement

Популярное

Спасибо!

Теперь редакторы в курсе.