Artean

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

Что необходимо подготовить до начала публикации

Прежде чем загружать сборку приложения в App Store Connect, важно убедиться, что вы подготовили всё необходимое — как с юридической точки зрения, так и на уровне метаданных и технической совместимости. Ошибки на этом этапе не просто замедляют релиз — они могут сделать публикацию невозможной в принципе.

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

  • Аккаунт Apple Developer Program: для публикации приложения требуется платная подписка в Apple Developer Program. Стоимость — $99 в год для Individual или Organization, и отдельная договоренность для Enterprise-аккаунта (этот вариант подходит крупным компаниям с внутренним распространением). Проверьте, что аккаунт оплачен, активен и имеет права доступа к App Store Connect. Для юридических лиц дополнительно потребуется указать D-U-N-S номер компании.
  • Юридические соглашения и права: Apple требует подтверждения прав на контент приложения. Это касается:
  • авторских прав на материалы, иконки, аудио и видео;
  • лицензий на использование API третьих лиц;
  • документов, подтверждающих разрешение на публикацию, если вы выпускаете приложение по заказу клиента.
  • Политику конфиденциальности необходимо не только разместить на отдельной странице (желательно — на сайте компании), но и указать URL в настройках приложения. Apple проверяет эти ссылки на работоспособность.
  • Метаданные, которые нужно подготовить заранее:
  • Имя приложения (App Name) — до 30 символов. Должно быть уникальным в рамках App Store;
  • Подзаголовок (Subtitle) — краткое описание, отображающееся рядом с иконкой;
  • Ключевые слова (около 100 символов, разделённые запятыми) — критически важны для поиска внутри App Store;
  • Полное описание (Description) — до 4000 символов, важно избегать недостоверных данных и скрытой функциональности;
  • URL сайта — можно указать страницу проекта или лендинг.
  • Дизайн материалов:
  • Иконка (1024×1024 px без прозрачности);
  • Скриншоты нужных форматов под все заявленные устройства (обязательно iPhone; если поддерживаются iPad или Apple Watch — тоже);
  • App Preview видео (по желанию, но повышает вовлеченность пользователей);
  • Контрастность, соответствие UI/UX гайдам (HIG)
  • Все визуальные элементы проходят проверку, включая разрешения, соответствие дизайну и даже читаемость текста на скриншотах.
  • Совместимость с устройствами:
  • Заранее определите и задекларируйте поддерживаемые версии iOS (особенно если используете новые API или Capabilities);
  • Если приложение не поддерживает iPhone SE или старые версии iOS, это нужно явно указать. Например, минимальная версия iOS 15 исключает часть аудитории и влияет на охват.
  • Настройте локализацию — хотя бы базовую (на английском), если приложение выходит не только на одном языке.
  • TestFlight-доступ: все новые приложения проходят через так называемый предварительный просмотр. Рекомендуется запускать TestFlight минимум с 2–3 тестировщиками — так вы заметите потенциальные ошибки в сборке до модерации. Для этого создайте группу внутренних тестеров и поделитесь ссылкой. В App Store Connect это настраивается в разделе TestFlight.

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

Настройка и создание проекта в App Store Connect

App Store Connect — web-интерфейс управления приложениями и публикациями в экосистеме Apple. Именно здесь осуществляется публикация мобильного приложения в App Store. Чтобы начать процесс релиза, необходимо завести App Record (учётную запись приложения). Каждый App Record связан с определённым Bundle ID и платформой (например, iOS или tvOS).

  1. Войдите в App Store Connect с Apple ID, который привязан к Apple Developer аккаунту. Перейдите в раздел My Apps.
  2. Нажмите “+”, затем выберите “New App”. Доступ к этой функции есть только у пользователей с ролью Admin или App Manager. При создании необходимо ввести:
  • Name (Название): отобразится в App Store, влияет на ранжирование;
  • Primary Language: не связана с локализацией, определяет язык контактной информации и отображения метаданных;
  • Bundle ID: совпадает с идентификатором проекта в Xcode. После создания изменить невозможно. Частая ошибка — несоответствие между Bundle ID проекта и выбранным ID в Store Connect;
  • Platform: iOS/index/iPadOS/tvOS — выберите только те, для которых есть готовая сборка. Отметка iPad требует наличия скриншотов под iPad;
  • User Access (для Organization аккаунтов) — можно ограничить доступ к приложению внутри команды;
  • SKU: внутренний идентификатор, например, com.companyname.projectname. Не отображается пользователю, но используется системой.
  1. Категории:
  • Primary и Secondary — влияют на размещение в категориях App Store;
  • Оптимальный выбор: одна точная категория, отражающая основную ценность (например, Productivity, Education);
  • Ошибка: пытаться «растянуть охват», добавив нерелевантную вторую категорию — это может вызвать отклонение при проверке.
  1. Возрастное ограничение: Apple требует прохождения анкеты контента — на её основе формируется возрастной рейтинг. Вопросы касаются:
  • Наличия сцены насилия, азартных игр, контента для взрослых;
  • Сбора данных, использования локации, доступа к камере/микрофону;
  • Доступностью UGC (контента от пользователей) — комментарии, чаты и т.п.
  1. Анкета доступна в разделе App Information — и влияет не только на рейтинг, но и на региональную доступность (в некоторых странах приложения 17+ недоступны).

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

Загрузка сборки через Xcode или Transporter

Чтобы отправить исполняемый файл (IPA) в App Store Connect, необходимо использовать один из двух инструментов: Xcode или Transporter. Оба способа официально поддерживаются Apple, но подходят для разных задач.

  • Через Xcode: подходит при наличии доступа к Xcode, с конфигурацией проекта и наличием .xcarchive.
  • Откройте проект → Product → Archive;
  • После завершения архивации выберите “Distribute App”;
  • Выберите App Store Connect → Upload → следуйте пошагово.
  • Убедитесь, что в настройках схемы выставлен режим Release, включены подписи кодов, задействованы Capabilities (например, Push-сообщения, Sign in with Apple — иначе сборку отклонят).
  • Через Transporter: удобен, если доступ к Xcode отсутствует (например, менеджер заливает архив от разработчика).
  • IPA-архив должен быть сформирован корректно (подписан, с наличием иконок и Provisioning Profile);
  • Transporter скачивается через Mac App Store;
  • Авторизуйтесь через Apple ID, нажмите Upload, выберите IPA и отправьте.

После загрузки сборки в Store Connect она появляется в разделе “TestFlight → Builds” и/или “General → Builds”. Это может занять от 10 минут до часа — в зависимости от нагрузки на серверы. Если этого не происходит дольше 2 часов, проверьте статус на System Status и убедитесь, что:

  • Bundle ID совпадает с тем, что в App Record;
  • Использовано корректное Provisioning Profile и Distribution Certificate;
  • Сборка не содержит битые ресурсы или устаревшие библиотеки.

Распространённая проблема — сборка не появляется в интерфейсе App Store Connect из-за ошибок на уровне Info.plist или отсутствия обязательных ассетов (например, иконка только 180×180 без остальных размеров).

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

Настройка информации о приложении перед отправкой на ревью

На этапе подготовки к модерации многие разработчики фокусируются только на самой сборке, забывая, что команда ревьюеров Apple оценивает приложение как единый продукт — включая тексты, формат описаний, скриншоты и справочную информацию. Даже мелкие ошибки в этих областях могут привести к отказу в публикации — с формулировкой “Guideline 2.3 — Accurate Metadata” или аналогичной.

Разделы, которые необходимо заполнить и проверить:

  1. App InformationЗдесь необходимо:
  • Проверить Localized App Name и Subtitle на всех добавленных языках;
  • Указать Copyright — это не просто дата, а “Company Name © Год” (например, “Acme Inc. © 2024”);
  • Указать ссылку на политику конфиденциальности — без корректной работающей ссылки ревью не начнётся;
  • Проверить Bundle ID — он должен совпадать с тем, что в сборке. Изменить нельзя!
  1. General App SettingsЭто ключевой раздел для тестирования и ревью:
  • Version: укажите версию в формате X.Y.Z (например, 1.0.0);
  • Build: выберите загруженную сборку. Если сборка не появилась — вернитесь к предыдущему этапу;
  • Description: формально можно до 4000 символов, но на практике желательно до 1 000 символов. Избегайте:
  • упоминаний других платформ (например, “доступно в Google Play”);
  • обещаний, которых нет в функционале (например, “более 1000 функций” — если проверяющий найдёт 12, публикацию отклонят);
  • лишней рекламы (“лучшее в мире”, “2023 hit app” — вызывают недоверие).
  • Keywords: до 100 символов, без пробелов — только запятые. Используйте слова, по которым хотят найти приложение, а не просто синонимы из описания;
  • Marketing URL (по желанию) — можно указать страницу с презентацией, лендинг или медиакит;
  • Support URL — обязательное поле. Apple может проверить почту/чат, указанный на сайте.
  • Скриншоты и превьюДобавьте скриншоты в нужных разрешениях:
  • для iPhone (6.7”, 6.5”, 5.5”, 5.8” — минимум один из больших размеров);
  • для iPad (опционально, если есть поддержка);
  • для Apple Watch — если релевантно.
  • Скриншоты должны отражать реальный интерфейс, быть локализованными, не использовать “завлекающие обещания” (например, “заработай $1000 за день”).
  • Формат JPG или PNG, без прозрачности, без “рамок” устройств.
  • Минимально — 1 скриншот, оптимально — 3–5 на устройстве.
  • App Previews (видео) — мощный инструмент, если требуется объяснить UX. Формат H.264, длительность до 30 сек.
  1. Data Collection and PrivacyОбязательная анкета, доступная из раздела General → App Privacy. Apple требует указывать:
  • какие данные собираются: контактные, геолокация, диагностика, usage;
  • используются ли для таргетированной рекламы;
  • передаются ли третьим сторонам — например, Firebase, Google Analytics, Meta.
  1. Ошибки в этой анкете часто становятся причиной отказа. Еще хуже — если приложение реально собирает данные, но декларации не соответствует: Apple может исключить разработчика из прогаммы.
  2. Если задействована авторизация через Apple ID, сбор персональных фото, микрофон — это обязательно к указанию. Также – если есть кнопка “войти через соцсети” (Facebook, VK, Google).

Перед отправкой внимательно проверьте каждый введённый блок. Любая неточность в описании, некорректный URL или даже неполный скриншот могут привести к возврату. Ревьюеры не делают работу за вас и не “догадываются”, как работает приложение — всё должно быть ясно, логично и полно.

Отправка на ревью и отслеживание статуса

Когда все поля заполнены, сборка загружена и выбрана, и вы уверены в полном соответствии данных требованиям Apple — пора отправлять приложение на проверку (Submit for Review).

  1. Нажмите “Submit for Review” в правом верхнем углу. Активно становится только если:
  • Выбрана сборка для релиза;
  • Пройдена анкета приватности;
  • Заполнены все обязательные поля.
  1. Подтвердите соглашения: возможно, потребуется согласие на экспортные правила США (если приложение использует шифрование — даже iMessage, SSL и т.д.) — соответствующее поле следует заполнить или отметить галочкой.
  2. Выберите релиз-режим:
  • Manual Release — приложение появится в Store только после ручного подтверждения;
  • Automatic — сразу после одобрения;
  • Phased Release — поэтапное внедрение на % аудитории (см. ниже).

Сколько длится ревью? От нескольких часов до 48–72 часов в среднем. По данным AppReviewTimes, средняя проверка в 2023 году — 36 часов, но:

  • возможны задержки в праздники и релизы новых версий iOS;
  • если приложение требует дополнительной информации или инспекции — до недели.

Где смотреть статус? Раздел App Store Connect → My Apps → Версия → App Review Status. Возможные статусы:

  • Waiting for Review — в очереди на проверку;
  • In Review — активно проверяется ревьюером;
  • Rejected — отказ/требуется правка;
  • Accepted → Ready for Sale — одобрено и доступно.

Если модерация приостановлена или слишком долгая, проверьте сайт Apple System Status — иногда бывают временные сбои.

Если приложение отклонено (Rejected) — в разделе Resolution Center вы увидите причину, скриншоты/видео поведения ревьюера, а также канал для обратной связи. Доступны два варианта действия:

  • Исправить и отправить заново (Resubmit);
  • Подать апелляцию (Appeal) — это делается через Feedback Assistant, если вы считаете отказ ошибочным.

В случае Rejection ни в коем случае не начинайте с «попробуем ещё раз» — Apple регистрирует попытки обмана или маскировки нарушения, и такие аккаунты могут получить блокировку или бан на публикации до разбирательств.

Особенности ревью: на что обращает внимание Apple

Механизм ревью в App Store — далеко не формальность. Команда модерации тщательно анализирует каждое приложение: от соответствия UX-гайдам до реализации политик приватности и схемы поведения пользователя. Зная, на какие детали обращает внимание Apple, можно значительно повысить шансы пройти проверку с первого раза.

Типичные причины отклонения (Reject)

  1. Несоответствие Human Interface Guidelines (HIG)Apple уделяет повышенное внимание интерфейсу. Отклоняют за:
  • нестандартные элементы UI, которые нарушают нативные шаблоны поведения (например, альтернативная реализация переключателя, неинтуитивный свайп);
  • слишком маленькие кликабельные зоны — особенно на iPhone SE или iPad mini;
  • нарушение правил навигации (например, отсутствие кнопки «Назад», неправильный dismiss экранов).
  1. Перед отправкой обязательно проверьте, чтобы интерфейс соответствовал платформенным паттернам. Ознакомьтесь с Human Interface Guidelines.
  • Ошибки в мета-данныхОписание содержит неточные или вводящие в заблуждение утверждения: например, если вы заявили “наше приложение рассчитывает калории в реальном времени”, а на деле — ручной ввод, это повод для отклонения;
  • Использование чужих торговых марок в ключевых словах (Instagram, WhatsApp, Telegram) без права — частая причина Rejection по пункту 5.2;
  • Неверный возрастной рейтинг: приложение с чатами, UGC или денежными переводами не может быть “4+”.
  • Отсутствие или некорректная политика конфиденциальностиНерабочие URL;
  • Текст без конкретики: “мы не собираем данные” – но при этом в приложении форма регистрации, Paywall или аналитика;
  • Отсутствие описания доступа к микрофону, камере, геопозиции при первом запуске — всё это критично.
  1. Автоматическое воспроизведение звука или видеоЕсли приложение воспроизводит видео/аудио без взаимодействия пользователя и без отключения, оно нарушает правила UX-поведения. Это относится даже к звуковым уведомлениям интро. Apple требует “интерфейсной согласованности” в пользовательском опыте.
  • “Скрытые” функцииФункциональность, не описанная в мета-данных;
  • Фичи, доступные только при специальном коде, доступе или гео-локации — это запрещено;
  • Демо-режим, не обозначенный в описании (например, пользователь думает, что зашел в настоящее приложение, а видит только mock-интерфейс — отказ 2.1).

Чеклист финальной проверки перед отправкой

Чтобы минимизировать риски отказа, используйте следующий список:

  • На всех уровнях возраста указаны корректные причины и сверено с чеклистом анкеты Content Restrictions;
  • Скриншоты соответствуют заявленным функциям;
  • Описание не содержит вводящих фраз, эмодзи, восклицательных знаков, фейковых отзывов (например, “1000+ довольных пользователей”);
  • Политика конфиденциальности соответствует сбору данных, корректно выгружена по URL, присутствуют пункты:
  • что собирается,
  • зачем,
  • как долго хранится,
  • возможность удаления/запроса.
  • На первом запуске приложением запрашиваются разрешения — только после объяснения и в нужный момент (не в момент запуска приложения);
  • Платёжные механизмы работают через In-App Purchase (все покупки внутри App Store Connect указаны и активированы);
  • Если приложение не работает без регистрации — это указано в описании (иначе — отказ).

Когда стоит обращаться в поддержку Apple

Реформа ревью-процесса в 2021 году делает возможным не просто апеллировать автоматические решения, но и запросить дополнительный диалог. Поводы:

  • Отказ основан на неправильном понимании бизнес-логики приложения;
  • Ошибка на стороне ревью (например, ревьюер не преодолел логин-экран без тест-доступа);
  • Используемый SDK/функциональность уже разрешены, но Apple еще не обновила направляющие.

Для обжалования используйте форму апелляции или Feedback Assistant. Обязательно приложите:

  • Чёткое описание ситуации;
  • Скриншоты, видео с демонстрацией функциональности;
  • Уточнения по поведенческой логике (UX), при необходимости — доступ к тестовым аккаунтам.

Обновления, версии и фазы релиза

Опубликовав первую версию, вы не просто “выпустили приложение” — начинается этап его поддержки, улучшения и обновлений. Работа с апдейтами требует внимательности и стратегического подхода: даже мелкое обновление проходит ревью, и ошибки на этом этапе могут привести к временной приостановке и плохим отзывам.

Как работают обновления

Каждое изменение приложения требует повторной отправки. Даже изменение скриншотов в мета-данных — является обновлением. Процесс следующий:

  1. Создайте новую версию (например, 1.0.1), на основе текущего приложения в Store Connect;
  2. Загрузите новую сборку с увеличенным номером билда (например, 1.0.1 (2));
  3. Обновите мета-данные, если изменились;
  4. Пройдите ревью — да, даже минорные изменения требуют одобрения.

Для автоматизации процесса загрузки используется Fastlane — opensource-инструмент, позволяющий выгружать сборки, мета-данные и скриншоты через терминал, что особенно полезно в CI/CD пайплайнах.

Фазы релиза: manual release vs phased release

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

  • Manual Release: обновление не выйдет в Store, пока вы вручную не нажмете Release. Подходит для согласований, маркетингового тайминга и подготовки PR;
  • Automatic: произойдёт выкладка сразу после модерации;
  • Phased Release: “поэтапный релиз” — обновление получают сначала 1% пользователей, потом 2%, 5%, 10%, 20%, 50% и, наконец, 100% за 7 дней. Можно вручную остановить на любом этапе. Удобно при риске багов или тестировании гипотезы.

Внутреннее и внешнее тестирование

TestFlight предоставляет две модели:

  • Internal Testers: члены вашей команды, список до 25 человек. Доступ моментально;
  • External Testers: до 10 000 человек. Требует отдельной отправки на ревью внутри TestFlight (быстрое, но обязательное).

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

Что может пойти не так с обновлениями

  • Ошибка в нумерации: Build Number уже использован — не забудьте каждый раз увеличивать, иначе загрузка IPA заблокируется;
  • Некорректная мета-информация вызывает повторное ревью, даже если код не менялся;
  • Изменение политики (например, новые поля в Data Collection) требует перепроверки. Обычно это происходит весной, с релизом новых правил Apple.

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