Как загрузить приложение в App Store: этапы и важные аспекты. Как разместить приложение в AppStore

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




Настройка проекта, сборка и выгрузка

Откройте проект вашего приложения в 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 будут доступны.

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

Перспективы создания и публикации приложений для iOS

Как бы молодые разработчики ни тешили себя надеждами, приятного на рынке приложений мало. Из множества проектов, популярными становятся далеко не многие. Одна незаурядная американская компания Эпп Промо провела маркетинговое исследование и получила вот такие результаты: большинство опрошенных создателей приложений заявили, что 60% игр вообще не приносят деньги, а 82% говорят, что этим делом они себя прокормить не могут. Следовательно, им приходится работать где-то ещё.

Компания Apple заявляет, что их площадка - хорошее место для подобного рода заработка, но по факту дела обстоят иначе. Для того, чтобы зарабатывать деньги (ну, или хотя бы не уходить в минус), нужно попасть в Топ-100 или Топ-200. Другие разработчики объясняют это явление тем, что людям будет просто лень пролистывать далеко вниз для того, чтобы найти предложенный вами продукт. Если вас не напугало вышеописанное и вы все равно хотите создать своё приложение - идём дальше.

Как создать приложение для iOS и выложить его в App Store

Разберёмся, что нужно сделать, чтобы получить приложение и начать на нём зарабатывать.

Как установить среду разработки Xcode

Создаём приложение в Xcode

  1. Как создать новый проект. Открываем приложение. Далее выбираем меню «файл» и нажимаем на «создать новый файл». Нажимаем на приложение (application) под «ios» слева в окне. Переходим в раздел шаблонов. Нажимаем на пустое приложение (Empty Application).

    В интерфейсе программы выбираем «Single new application»

    2. Создание сториборда. Storyboard отвечает за отображение экранов приложения в вашей программе. Сториборды отображают то, что находится на каждом отдельном окне, и показывают их взаимодействие. Эта штука даёт возможность хорошо проработать вашу игру. Далее делаем следующее: Выбираем Файл, затем New, затем Файл. Далее нажимаем на «User Interface». Кликаем на сториборд, выбираем «next». В меню устройств нужно выбрать устройство, для которого предназначена ваша программа. В моём случае - I phone. Называем объект «Main».

    В Storyboard выбираем устройство

    3. Назначаем сториборд к вашему проекту. Теперь назначаем сториборд в качестве главного интерфейса нашей программы. Если все сделать правильно, сториборд будет доступен сразу, когда мы запустим нашу программу. Вот, как нужно действовать: выбираем имя своего файла во вкладке слева, нажимаем targets и выбираем свой проект из этого заголовка. Перейдите в меню «Generals» и выберите «Deployments Infos». В Main Interface вводим Main.Storyboard и переходим к следующему шагу.

    Вводим «Main.storyboard»

    4. Добавляем первый экран. Для этого нам понадобится контроллер вида. С помощью них мы сможем сгенерировать приблизительный вид приложения. Изначально можно изучить контроллеры вида и выбрать их из нескольких пресетов. Если вдруг вы в этом деле чайник, то лучше, конечно, выбрать из существующих. Таким образом, мы увидим, как будет выглядеть приложение в руках у обычного юзера. Выбираем «Mains Storyboards». Находим Object Library. Внизу правой части можно этот самый Object Library выбрать. Справа вы увидите появившееся окошко, которое именуется холстом. Перетаскиваем туда «Views Controller». Когда пользователь запустит приложение, он увидит загрузочное окошко. Поздравляем!

    В панели контроллера вида добавляем первый экран

    5. Добавляем объекты на наш экран. После выбора контроллера вида, вы можете добавлять объекты в ваше приложение. Их можно найти во все том же Object Library. Эту библиотеку можно найти внутри контроллера вида.

    Затем добавляем на наш экран объекты интерфейса

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

    Создаём индивидуальный интерфейс и измененяем свойства объектов

    7. Добавление дополнительных экранов. Ваше приложение не может состоять из одного экрана - в этом просто нет смысла. Поэтому вам понадобится создавать их самостоятельно. Делается это предельно просто - контроллер вида на пустую часть экрана.

    Перетаскиваем контроллер вида на пустую часть холста

    8. Активируем «Navigation Controller». Эту фичу мы будем использовать для перемещения между несколькими окошками. Достигается с помощью Navigation Controller. Navigation Bar добавляется вверху программы. Запомните, Navigation Controller добавляется строго к начальному экрану для контроля за перемещением по всем остальным окнам. Для этого выбираем загрузочный экран. Нажимаем на editor, затем на Embed In, затем тыкаем на Navigation controller. После проделанных шагов появляется навигационная панель.

    Добавляемпо инструкции панель навигации

    9. Добавляем функциональность Navigation Controller. Когда меню навигации было создано, к нему необходимо добавить инструменты. С помощью этой фичи пользователь сможет «переезжать» по приложению из одного места в другое. Мы предлагаем добавить стандартный функционал. Добавьте заголовок (для этого нужно открыть пункт Navigation Item, а затем Attributes Inspector, после чего вводим заголовок), Navigation button и обеспечиваем кнопкам свойства.

    Добавление функционала на панели

    10. Связываем экран с кнопкой. Для связывания кнопок нажимаем ctrl, а затем перетаскиваем их её на следующий экран. Вскоре вылезет пункт Action Segue с доступными опциями. Выбираем «Push» для перемещения по окошкам.

    Связывание кнопки с экраном

    11. С помощью вышеперечисленных шагов можно создать программу с очень примитивным функционалом и интерфейсом. Если вы все же хотите создать действительно интересное приложение с возможностью обработки данных - изучайте язык Objective C.

    Пора приступать к изучению языка программирования

Как протестировать созданное приложение


Как опубликовать


Возможные проблемы и пути их решения

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

Не забывайте следить за продажами. Сделать это можно с помощью Itunes Connect Mobile. Компания Apple будет периодически присылать вам уведомления с аналитикой продаж, но следить самостоятельно лишним не будет. Успехов вам и больших продаж!

Опишем на будущее хинты по выкладыванию своих программ в магазин приложений Apple AppStore . Хотя, как показывает практика, дело это не очень чтобы благодарное, поскольку яблочные товарищи не склонны к постоянству в механизмах функционирования своей системы. Это было уже не раз обнаружено мной в ходе прохождения различных процедур регистраций. Читая материалы предшественников и вопросы на форумах частенько можно столкнуться с ситуацией, что один и тот же момент выглядит у тебя уже по-другому. Тем не менее, общая концепция пока что остается. И так, попробую описать своими словами всю эту махину))
Чтобы выкладывать приложения в AppStore, необходимым условием является наличие статуса .
Весь процесс можно разделить на два этапа: подготовка и публикация.
Подготовка (Provisioning). Самый сложный в понимании этап (по крайней мере для меня показался).
Он включает в себя создание идентификатора приложения App Id) и сертификата для подписи приложения . Все это объединяется под общим понятием профиля (Provisioning profile ). Но все по порядку. Самое сложное во всем этом — создание сертификата. Сертификат необходим для цифровой подписи приложения. Существует два вида сертификатов — сертификат разработчика (Development certificate) и сертификат дистрибуции (Distribution certificate). Из названия не трудно догадаться, что первый тип нужен для разработки, второй — для распространения. Первым можно подписывать приложение и запускать на своем гаджете (в целях отладки), второй нужен, чтобы собирать приложение для публикации в аппсторе . Чтобы иметь возможность запускать приложение на своем гаджете, необходимо зарегистрировать устройство в Provisioning Portal . Делается это следующим образом. В среде xCode открываем Organizer (Window -> Organizer), подключаем свой гаджет к компьютеру (по usb, например), видим, что он появляется в разделе Devices. Копируем его DeviceID (длинная hex-строка) в буфер и идем в Provisioning Portal в раздел Devices. Там жамкаем Add Device, далее все просто.

Добавили. Теперь создаем сертификаты. Это не очень сложно, но меня заставило повозиться. Не буду долго расписывать, все это можно найти в How-To внутри Provisioning Portal. Обозначу лишь основные шаги:
— Создание запроса на подпись сертификата (включает в себя создание пары открытого и приватного ключа). В итоге получаем на диске файл CSR.
— Сабмит запроса на подпись сертификата. В Provisioning Portal заходим в секцию Certificates, указываем файл CSR, жмем Submit, сертификат создается и переводится в состояние Pending Approval .
— В Provisioning Portal заходим в секцию Certificates и подтверждаем сертификат (жмем Approve)
— Скачиваем и устанавливаем сертификат в систему. В Provisioning Portal заходим в секцию Certifiates. Кликаем ссылку WWDR Intermediate Certificate , на что нам предлагают сохранить файл.cer. Соглашаемся, и по завершению скачивания кликаем на нем. Запускается программа Keychain Access, которая предлагает установить сертификат в систему. Соглашаемся, и вот у нас есть сертификат для разработки.
Важный этап — эппл настоятельно рекомендует сохранить сгенерированный приватный ключ. При его утрате все труды окажутся напрасными, мы ничего больше не сможем подписать. Хорошо, что я вспомнил это, так как сам до сих пор не забэкапил свой ключ. Все-таки, полезная вещь — блог)))
Для сертификата дистрибуции все то же самое, за исключением того, что ключи больше не надо генерить.
И так, сертификаты мы создали, что теперь? Теперь нужно создать так называемые Provisioning Profiles (не хватает фантазии перевести на русский). Подготовительный профиль (назовем его так) представляет собой совокупность сертификата и идентификатора приложения. Сертификат у нас уже имеется, создадим идентификатор приложения. Для этого идем на Provisioning Portal в сецкию AppIDs. Если не брать в учет «пакетную» концепцию идентификации приложений, то все просто: нажимаем New App ID, вводим
— Description (напр, My Awesome App)
— Bundle Seed ID (App ID Prefix) — если это наше первое приложение, то в списке будет всего один пункт — Generate New, в противном случае в нем будут идентификаторы ранее созданных приложений (по задумке, приложения можно объединять в пакеты (suite))
— Bundle Identifier (App ID Suffix) — рекомендуется вводить в так называемом reverse domain style. То есть домен в обратном порядке. Например, в моем первом приложении Knight Move этот идентификатор выглядел как ru.heximal.knightmove.
Жмем Sumbit. Все, идентификатор приложения создан.
Далее заходим в разлем Provisioning и создаем профили нашего приложения (жмем New Profile). Для девелопмент-профиля вводим
— Profile Name — под этим именем профиль будет отображатся в xCode. Пример: KnightMoveDevelopmentProfile
— Certificates — ставим чеку на нашем сертификате
— App ID — выбираем наше приложение
— Devices — ставим чеку на тех девайсах, которые зарегистрированы — их может быть более одного. Я вот подумываю прикупить 4-й айфон для отладки (всмысле, не четвертый по счету — он у меня пока один, а с четвертой прошивкой). Забегая чуть вперед, скажу, что на втором этапе будет задан вопрос, тестировали ли мы наше приложение под iOS 4? Мне приходится отвечать Нет. Хотя я мог бы перепрошить свой девайс, iTunes каждый раз сигнализирует, что есть новая версия фирмвэйра. Но я пока не тороплюсь, потому что при таком раскладе у меня не будет возможности тестировать на третей прошивке кроме как в симуляторе.
Создали профиль, дождались его аппрува, скачиваем файл профиля (.provisionprofile), открываем окно Organizer и кидаем туда драг-энд-дропом файл профиля. Он успешно инсталлируется. Все.
Теперь открываем Project Settings, ищем опцию Code Signing подраздел Any iPhone OS, разворачиваем список, выбираем свой профайл, закрываем опции проекта. Далее важный момент. В структуре проекта (в древовидном сайдбаре) разворачиваем ветку Targets, щелкаем правой кнопкой на таргете, выбираем Get Info. Появляются снова опции проекта, но уже с секцией Properties. Заходим туда и вписываем в поле Identifier то значение, которое мы вводили при создании App ID в поле Bundle Identifier (напр, ru.heximal.knightmove). Все. Убеждаемся, что девайс подключен, выбираем в главном окне xCode конфигурацию Device|Debug и жмем Build And Go.
После того, как мы отладили приложение на девайсе, наступает пора собирать дистрибутив для публикации. Для этого повторяем процесс создания профиля дистрибуции. Он схож с созданием девелопмент-профиля. Инсталлируем профиль в xCode , а далее нужно осуществить следующий трик. Необходимо создать новую конфигурацию Distribution. Открываем опции проекта, секцию Configuration, выбираем там конфигурацию Release и нажимаем Duplicate. Вводим название Distribution. Далее в окне Target в секции Build выбираем настройки для конфигурации Distribution и в поле Code Signing Identity — Any iPhone OS Device выбираем наш Distribution Profile . На закладке Properties не забываем вписать Bundle Identifier, если еще не сделали. Закрываем опции, и в главном окне xCode выбираем конфигурацию Device|Distribution. Далее неплохо бы проследить за процессом сборки. Для этого идем в меню Build — Build Results. Там настраиваем чтобы показывался лог компиляции. Нажимаем Build. Появляется много строчек, в конце которых ищем слова ProcessingProductPackaging … embedded.mobileprovision и СodeSign. Вот здесь у меня ушло много времени. В пакете приложения (application bundle) упорно не хотел появляться файл embedded.mobileprovision . А без него приложение никак не хотело загружаться в AppStore. Это явилось следствием того, что ранее я экспериментировал с самопальными сертификатами и отключением системы provisioning’а. Позже я восстановил (кстати, хвала своему блогу) последовательность действий, которая привела к неработоспособности системы профайлинга, но времени на это ушло… В общем, как я ранее уже заявлял, не скупитесь, вступайте лучше сразу в iPhone Developer Program, если вы конечно не мазохисты))
Пакет приложения представляет собой простую папку с расширением.app, которая содержит исполняемый файл и все потроха приложения (ресурсы). Собственно, приложения Mac OS X представляют собой ровно то же самое, поэтому их можно просто перетащить куда-либо в другое место, и оно от туда запустится, потому что содержит внутри папки все необходимое. В этом конечно бесспорное приемущество non-registry концепции. И так, зипуем бандл нашего приложения тем самым готовимся к следующему этапу.
Публикация.
Дальнейшие действия производятся на портале iTunes Connect (itunesconnect.apple.com) Заходим в раздел Manage Your Applications и жмем Add New Application. Вводим
— App Name — имя приложения, то, как оно будет выглядеть в AppStore. При публикации второго приложения я столкнулся с тем, что это название должно быть уникальным для всего AppStore. То есть, если мы задумали назвать приложение каким-либо образом, а приложение с таким названием уже существует, нам придется придумывать что-то другое. Также следует учесть требования самого Apple к названию приложения http://www.apple.com/legal/trademark/guidelinesfor3rdparties.html
— SKU Number — опять какой-то уникальный идентификатор приложения, я не понял для чего он нужен, но решил придерживаться определенного правила генерации этого параметра, навроде hex_app_0001
— Bundle ID выбираем наше приложение
Дальше вроде все понятно, нужно заполнить мета-информацию о приложении: описание, категории, локализацию, скриншоты, иконку. После всего этого приложение переходит в состояние Waiting for upload. Для загрузки бинарника требуется программка Application Loader из пакета Developer. Если таковой не имеется, требуется доустановить. Запускаем ее, она спрашивает наш Apple ID и пароль, далее показывает список приложений, ожидающих аплоада. Выбираем, загружаем. Вот на этом этапе, кстати, у меня были проблемы до тех пор, пока я не реанимировал отключенный механизм профайлинга и кодесайнинга — без них аплоадер не хотел загружать приложение.
Все, после загрузки приложение переводится в состояние Waiting for Review — ожидание рассмотрения. Рассмотрение проивзодится специалистами Apple на предмет соответствия требованиям. Эти требования описаны в мануале iPhone Application Development Guide, и включают в себя такие аспекты, как соответствие общему дизайну, грамотное использование ресурсов устройства, таких как памяти, энергопотребления, производительности ну и просто user-friendly. Apple очень ответственно к этому подходит. Могут завернуть, например, если приложение очень долго закрывается, я уж молчу про утечки памяти. Чтобы избежать этих неприятностей, приложение перед сборкой дистрибутиво следует тщательно протестировать. В пакете Developer есть набор инструментов (приложение Instruments). С помошью него можно узнать много нового о своем приложении. Например, написав первое приложение и прогнав его через программу мониторинга выделения памяти, и утечек я обнаружил, что оно безнадежно течет. Несколько дней потратил на устранение утечек . Позже накидаю небольшой мануальчик, как пользоваться инструментами.
Будучи новичком, я думал, что статус Waiting for Review означает, что приложение уже находится на рассмотрении, однако по прошествии недели я заподозрил что-то неладное и решил написать в саппорт. На следующий день мне ответили и тут же пришло уведомление о том, что приложение переведено в статус OnReview. Тут сразу все стало ясно. Прошло еще дня полтора и приложение перешло в состояние Ready For Sale. Все, победа. Путь в аппсторе окончательно завершен.
Небольшой конфуз произошел по неопытности, при неудачной попытке найти в AppStore свое приложение в тот же день. Его там не было. Как оказалось позже, это нормальная ситуация. Существует некий период индексации. По моим наблюдениям он составляет сутки. Второе приложение тоже появилось через сутки. Кстати, со вторым приложением ситуация с ожиданием рассмотрения повторилась. Правда, я выжидал подольше чем неделю, прежде чем написать в саппорт. После того, как терпение закончилось, написал, и тут же мне ответили и приложение ушло на рассмотрение. Видимо, это закономерность. Посмотрим.

И напоследок. При публикации приложения обязательным полем в мета является страница технической поддержки. Это меня сподвигло отрихтовать свою страницу feedback. Теперь она англоязычная))


Правила приема приложений в App Store

Редакция App Store тщательно отбирает приложения, часто отказывая в публикации. Новая проверка приложения займет еще две недели. У нас количество отказов доходило до шести, целых три месяца на публикацию приложения.

Хорошая новость в том, что у Apple описала требования к приложениям в .

2. Функциональность

Редакция App Store отклоняет приложения, которые
2.1 падают
2.2 содержат видимые ошибки
2.3 делают не то, что написано в описании
2.4 содержат недокументированные или скрытые функции
2.5 используют недокументированные API iOS
2.6 скачивают, устанавливают или запускают исполняемый код
2.7 «бета», «демо» и «тестовые» версии
2.13 содержат только рекламные и маркетинговые материалы
2.18 одобряют чрезмерное употребление алкоголя или наркотиков, склоняют детей к употреблению алкоголя и курению
2.19 проводят некорректную диагностику или отображают неверные данные об устройстве
2.25 показывают приложения других разработчиков для продвижения или покупки в похожем на AppStore интерфейсе

Редакция МОЖЕТ отклонить приложения, которые:
2.11 повторяют приложения которые уже есть в App Store, особенно если их там уже много, например: фонарики, Кама Сутры, пукающие приложения.
2.12 не особо полезные, уникальные или просто веб-сайты оформленные как приложения
2.22 произвольно ограничивают пользователей приложения, например по местоположению или оператору сотовой связи

2.10 iPhone приложения должны работать на iPad в обычном и удвоенном размере.
2.15 Приложения больше 50 мегабайт пользователи смогут загрузить только по WiFi

2.20 Разработчики захламляющие App Store разными версиями одного и того же приложения будут заблокированы.

2.21 Приложения содержащие просто песню или фильм должны быть в iTunes Store, просто книгу в iBookStore.

3. Метаданные (имя, описание, иконка)

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

3.4 Названия приложения в iTunes и на рабочем столе устройства должны похожими.
3.5 Большие и маленькие иконки приложения должны быть одинаковыми
3.6 Описание и иконки должны иметь рейтинг 4+ (можно показывать четырехлетним детям).

3.10 Разработчики покупающие или генерирующие отзывы пользователей, манипулирующие топами App Store будут заблокированы.

4. Местоположение

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

5. Push оповещения

Приложения неправильно использующие push-оповещения будут отклонены.

5.1 Push оповещения должны быть реализованы через Apple Push Notification API (APN)
5.3 Вы обязаны получить согласие пользователя перед отправкой оповещений
5.4 В push-оповещения нельзя посылать персональную или конфиденциальную информацию
5.7 Нельзя брать деньги с пользователя за использование push-оповещений

Нельзя посылать вирусы, трояны (5.9), спам (5.5) и рекламу (5.6).

6. Game Center

Player ID нельзя показывать игроку или другим людям (6.1) и нельзя его использовать иначе чем описано в правилах Game Center (6.2)

9. Мультимедиа

9.1 Приложения обязаны использовать MediaPlayer Framework для доступа к музыкальной библиотеке устройства
9.2 Приложения похожие на интерфейс iPod будут отклонены

Требования к потоковой передаче данных по сотовым сетям (по WiFi можно передавать как хотите):
9.3 Аудио не больше 5 мб за 5 минут
9.4 Видео длиннее 10 минут должны использовать HTTP Live Streaming и включать 64kpbs аудио-версию

11. Покупки

Чем дороже приложение или покупки тем внимательнее Apple его проверяет (11.11)


11.1 открывают или разблокируют новый функционал не с помощью механизмов AppStore
11.2 используют отличные от In-App Purchase (IAP) механизмы для покупки контента, разблокирования функций или оказания услуг в приложени
11.3 продают через IAP товары физического мира (билеты в кино, пиццу) или услуги используемые вне приложения (мойка машины)
(фактически пункт 11.3 значит, что физические товары и услуги используемые вне приложения можно продавать не через IAP: кредитные карты, SMS)
11.5 продают кредиты, которые имеют срок действия
11.8 разблокируют за деньги доступ к функциям смартфона, например, камере или гироскопу
11.9 продают контент в аренду (со временем становится недоступен)
11.13 содержат ссылки на внешние механизмы покупки, например кнопку «купить», ведущую на веб-сайт с формой покупки

IAP бывают четырех видов:
- consumables потреблямые (можно покупкать многократно: патроны, здоровье, кредиты в skype)
- non-consumables непотребляемые (покупаются один раз: фильмы, книги, функции приложения, новые уровни)
- авто-обновляемые подписки
- подписки обновляемые вручную

Вы должны правильно выставить тип своих IAP (11.7), например, непотребляемые для фильмов или дополнительных функций, подписки для периодических платежей.

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

Приложения могут использовать контент (журналы, музыку, фильмы), купленный вне приложения, если вы не даете ссылку на внешний механизм покупки. (11.14)

Если вы используете встроенные покупки в приложении рекомендую прочитать Gettings Started with In-App Purchase

13 Повреждения

Редакция отклоняет приложения которые:
13.1 предлагают пользователю использовать устройство таким образом что оно может быть повреждено (выбросить в окно, ударить по столу)
13.2 быстро расходуют батарею или нагревают устройство

Редакция МОЖЕТ отклонить приложение которое может привести к физической травме пользователя.


15 Насилие

Редакция отклоняет приложения, содержащие
15.1 реалистичные изображения убитых, искалеченных, застреленных, заколотых, измученных, ранненых людей или животных
15.2 описания насилия или плохого обращения с детьми
15.4 реалистичные изображения оружия, поощряющие его незаконное или безрассудное использование
15.5 игру «Русская рулетка»

15.4 «Враги» в игре не должны представлять реальную расу, нацию, культуру, правительство или корпорацию.

17 Приватность

17.1 Приложения обязаны спрашивать разрешения пользователя на передачу данных о нем и сообщать где и зачем эти данные будут использованы.
17.2 Редакция отклоняет приложения, которые не работают без указания пользователем персональной информации (email, дата рождения, ...)

18 Порнография

18.1 Приложения не должны содержать порнографию.
18.2 Редакция отклоняет приложения, где контент генерируемый пользователями часто порнографический (например, chat-roulette)

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

20. Конкурсы, тотализаторы, лотереи, розыгрыши и азартные игры

20.1 Тотализаторы и конкурсы должны быть спонсированы разработчиком (или заказчиком) приложения
20.2 Правила тотализаторов и конкурсов должны быть представлены в приложении. Их правил должно быть ясно, что Apple никакого отношения к конкурсу не имеет.
20.3 Разработчик должен иметь лицензию на проведение лотереи.
20.4 В приложениях нельзя продавать лотерейные билеты
20.5 Разработчик игры на реальные деньги (ставки на спорт, покер, казино, тотализатор на скачках) должен иметь разрешение и лицензии во всех странах где доступно приложение. Игры на реальные деньги должны быть бесплатны в AppStore
20.6 В играх на реальные деньги нельзя продавать кредиты за IAP (то есть там где можно вывести выигрыш в реальные деньги, нельзя делать ставки за IAP)

22. Законные требования

Редакция отклоняет приложения, которые:
22.4 допускают нелегальный обмен файлами
22.5 содержат рекламу азартных игр
22.6 разрешают анонимные звонки или SMS

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

24. Детские приложения

Приложения в категории App Store «Для детей» должны быть предназначены для конкретного возраста: до 5 лет, 6-8 лет или 9-11 лет (24.4)

Приложения для детей до 13 лет:
24.1 должны иметь политику конфиденциальности
24.3 должны запрашивать разрешение родителей на переход по ссылке вне приложения или любые покупки
24.2 не могут показывать контекстную рекламу или рекламу основанную на поведении пользователя

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

Вместо этого мы поделимся нашим опытом проникновения в AppStore. Ежедневно в него попадают тысячи приложений, в карманы разработчиков (и Apple) текут зелёные реки хрустящих бумажек, а в программе разработчиков iOS developer регистрируются сотни новых программистов и компаний. Растущая популярность платформы iOS подтолкнула нас к мысли - почему бы не написать собственное приложение для iPhone? Кстати, наше приложение совершенно бесплатное:)

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

Становимся Apple Developer’ом

Идём сразу на страницу developer.apple.com/programs/ios .

Прежде всего нас спросят - хотим ли мы вступить в программу как уже зарегистрированный разработчик Apple или как новичок? Мы - новички, поэтому выбираем пункт «New Apple Developer» с возможностью создать новый Apple ID.

На следующем экране - ключевой вопрос - компания ли мы или разработчик. Смело выбираем «Компания» и готовимся к худшему.

Спрашивают у нас довольно много личной и даже интимной информации - от имени-фамилии до адреса места работы и телефона.

Далее нам предложат выбрать категории приложений, которые мы хотим разрабатывать, на какой рынок мы ориентируемся и под какую платформу мы собираемся разрабатывать (iOS, Mac OS X или Safari), сколько лет разрабатываем и (пристально глядя в глаза) спросят, не разрабатываем ли мы приложения «на сторону»… в смысле для других мобильных платформ.



Последние шаги - это поставить птичку под лицензионным соглашением (согласен, подтверждаю, не возражаю, целиком и полностью за)

И ввести код подтверждения, который придёт на указанный вначале e-mail.

Поздравляем! Теперь вы теперь почётный Apple Developer! Один из тысяч… зато какой!

Регистрация компании в iOS Developer Program

Для того, чтобы зарегистрировать компанию в iOS Developer Program, Apple необходимо знать название, адрес и телефон компании,

А также контактные данные лица, ответственного за регистрацию в iOS Developer Program и имеющего все необходимые для этого полномочия.

Выбираем iOS Developer Program,

Подтверждаем на отдельном экране всю введённую информацию

И ждём подтверждения Apple. Обычно на рассмотрение заявки уходит около суток. После подтверждения заявки нужно будет согласиться с лицензионным соглашением Apple и оплатить (наконец уже!) участие в программе.

Поскольку в России Apple Store пока что не наблюдается, единственный способ оплаты - это заполнение специальной формы (с совсем уже интимными данными об одной из ваших банковских карт, с которой Apple загребёт жадными ручонками целых 99$). Мы для этой формы выпустили виртуальную банковскую карту с лимитом 100$. Заполненную форму необходимо послать в Apple. Примерно через сутки вам придёт подтверждение о списании средств.

Доказываем свое существование и тренируем разговорный английский

Казалось бы - всё? Нет! Теперь вы должны доказать, что вы - не верблюд.
Apple должна удостовериться, что ваша компания действительно совершенно официально существует, для чего необходимо взять выписку из ЕГРЮЛ со сведениями о вашей компании, перевести на английский язык и отправить в Apple… правильно, по факсу. С телефоном, названием компании и номером вашей заявки, выписанными на отдельный листочек. При этом - важная деталь! - название вашей компании в переведённой выписке должно В ТОЧНОСТИ совпадать с заявленным при регистрации компании в iOS Developer Program. Запаситесь терпением - к рассмотрению присланных документов бюрократы Apple приступают примерно через недельку, а любое тёмное пятнышко на какой-то из страниц повлечёт за собой вежливое письмо с просьбой переслать всё заново ещё раз. И ещё раз подождать.

Затем Apple позвонит вам, чтобы удостовериться, что вы вообще существуете. И на английском языке сообщит, что - ГИП-ГИП-УРА! - с документами все в порядке и вам открыли доступ на портал разработчика itunesconnect.apple.com. На этом портале можно отправить свое приложение на рассмотрение, посмотреть ежедневную статистику скачиваний, заполнить реквизиты счета, на который Apple должны будут зачислять заработанные деньги, выставить свой собственный вариант EULA…

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

И?

Что будет дальше? А дальше нам надо поднять наше приложение в категории Business как можно выше и следить за скачиваниями. А также продолжать работать над функционалом. Ну и не забывать раз в год отправлять за бугор 99$ за пользование магазином с известным именем AppStore.
Успешных вам регистраций!

Кстати, совсем забыл:) Вот