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

- Аккаунт 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).
- Войдите в App Store Connect с Apple ID, который привязан к Apple Developer аккаунту. Перейдите в раздел My Apps.
- Нажмите “+”, затем выберите “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. Не отображается пользователю, но используется системой.
- Категории:
- Primary и Secondary — влияют на размещение в категориях App Store;
- Оптимальный выбор: одна точная категория, отражающая основную ценность (например, Productivity, Education);
- Ошибка: пытаться «растянуть охват», добавив нерелевантную вторую категорию — это может вызвать отклонение при проверке.
- Возрастное ограничение: Apple требует прохождения анкеты контента — на её основе формируется возрастной рейтинг. Вопросы касаются:
- Наличия сцены насилия, азартных игр, контента для взрослых;
- Сбора данных, использования локации, доступа к камере/микрофону;
- Доступностью UGC (контента от пользователей) — комментарии, чаты и т.п.
- Анкета доступна в разделе 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” или аналогичной.
Разделы, которые необходимо заполнить и проверить:
- App InformationЗдесь необходимо:
- Проверить Localized App Name и Subtitle на всех добавленных языках;
- Указать Copyright — это не просто дата, а “Company Name © Год” (например, “Acme Inc. © 2024”);
- Указать ссылку на политику конфиденциальности — без корректной работающей ссылки ревью не начнётся;
- Проверить Bundle ID — он должен совпадать с тем, что в сборке. Изменить нельзя!
- 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 сек.
- Data Collection and PrivacyОбязательная анкета, доступная из раздела General → App Privacy. Apple требует указывать:
- какие данные собираются: контактные, геолокация, диагностика, usage;
- используются ли для таргетированной рекламы;
- передаются ли третьим сторонам — например, Firebase, Google Analytics, Meta.
- Ошибки в этой анкете часто становятся причиной отказа. Еще хуже — если приложение реально собирает данные, но декларации не соответствует: Apple может исключить разработчика из прогаммы.
- Если задействована авторизация через Apple ID, сбор персональных фото, микрофон — это обязательно к указанию. Также – если есть кнопка “войти через соцсети” (Facebook, VK, Google).
Перед отправкой внимательно проверьте каждый введённый блок. Любая неточность в описании, некорректный URL или даже неполный скриншот могут привести к возврату. Ревьюеры не делают работу за вас и не “догадываются”, как работает приложение — всё должно быть ясно, логично и полно.
Отправка на ревью и отслеживание статуса
Когда все поля заполнены, сборка загружена и выбрана, и вы уверены в полном соответствии данных требованиям Apple — пора отправлять приложение на проверку (Submit for Review).
- Нажмите “Submit for Review” в правом верхнем углу. Активно становится только если:
- Выбрана сборка для релиза;
- Пройдена анкета приватности;
- Заполнены все обязательные поля.
- Подтвердите соглашения: возможно, потребуется согласие на экспортные правила США (если приложение использует шифрование — даже iMessage, SSL и т.д.) — соответствующее поле следует заполнить или отметить галочкой.
- Выберите релиз-режим:
- 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)
- Несоответствие Human Interface Guidelines (HIG)Apple уделяет повышенное внимание интерфейсу. Отклоняют за:
- нестандартные элементы UI, которые нарушают нативные шаблоны поведения (например, альтернативная реализация переключателя, неинтуитивный свайп);
- слишком маленькие кликабельные зоны — особенно на iPhone SE или iPad mini;
- нарушение правил навигации (например, отсутствие кнопки «Назад», неправильный dismiss экранов).
- Перед отправкой обязательно проверьте, чтобы интерфейс соответствовал платформенным паттернам. Ознакомьтесь с Human Interface Guidelines.
- Ошибки в мета-данныхОписание содержит неточные или вводящие в заблуждение утверждения: например, если вы заявили “наше приложение рассчитывает калории в реальном времени”, а на деле — ручной ввод, это повод для отклонения;
- Использование чужих торговых марок в ключевых словах (Instagram, WhatsApp, Telegram) без права — частая причина Rejection по пункту 5.2;
- Неверный возрастной рейтинг: приложение с чатами, UGC или денежными переводами не может быть “4+”.
- Отсутствие или некорректная политика конфиденциальностиНерабочие URL;
- Текст без конкретики: “мы не собираем данные” – но при этом в приложении форма регистрации, Paywall или аналитика;
- Отсутствие описания доступа к микрофону, камере, геопозиции при первом запуске — всё это критично.
- Автоматическое воспроизведение звука или видеоЕсли приложение воспроизводит видео/аудио без взаимодействия пользователя и без отключения, оно нарушает правила UX-поведения. Это относится даже к звуковым уведомлениям интро. Apple требует “интерфейсной согласованности” в пользовательском опыте.
- “Скрытые” функцииФункциональность, не описанная в мета-данных;
- Фичи, доступные только при специальном коде, доступе или гео-локации — это запрещено;
- Демо-режим, не обозначенный в описании (например, пользователь думает, что зашел в настоящее приложение, а видит только mock-интерфейс — отказ 2.1).
Чеклист финальной проверки перед отправкой
Чтобы минимизировать риски отказа, используйте следующий список:
- На всех уровнях возраста указаны корректные причины и сверено с чеклистом анкеты Content Restrictions;
- Скриншоты соответствуют заявленным функциям;
- Описание не содержит вводящих фраз, эмодзи, восклицательных знаков, фейковых отзывов (например, “1000+ довольных пользователей”);
- Политика конфиденциальности соответствует сбору данных, корректно выгружена по URL, присутствуют пункты:
- что собирается,
- зачем,
- как долго хранится,
- возможность удаления/запроса.
- На первом запуске приложением запрашиваются разрешения — только после объяснения и в нужный момент (не в момент запуска приложения);
- Платёжные механизмы работают через In-App Purchase (все покупки внутри App Store Connect указаны и активированы);
- Если приложение не работает без регистрации — это указано в описании (иначе — отказ).
Когда стоит обращаться в поддержку Apple
Реформа ревью-процесса в 2021 году делает возможным не просто апеллировать автоматические решения, но и запросить дополнительный диалог. Поводы:
- Отказ основан на неправильном понимании бизнес-логики приложения;
- Ошибка на стороне ревью (например, ревьюер не преодолел логин-экран без тест-доступа);
- Используемый SDK/функциональность уже разрешены, но Apple еще не обновила направляющие.
Для обжалования используйте форму апелляции или Feedback Assistant. Обязательно приложите:
- Чёткое описание ситуации;
- Скриншоты, видео с демонстрацией функциональности;
- Уточнения по поведенческой логике (UX), при необходимости — доступ к тестовым аккаунтам.
Обновления, версии и фазы релиза
Опубликовав первую версию, вы не просто “выпустили приложение” — начинается этап его поддержки, улучшения и обновлений. Работа с апдейтами требует внимательности и стратегического подхода: даже мелкое обновление проходит ревью, и ошибки на этом этапе могут привести к временной приостановке и плохим отзывам.
Как работают обновления
Каждое изменение приложения требует повторной отправки. Даже изменение скриншотов в мета-данных — является обновлением. Процесс следующий:
- Создайте новую версию (например, 1.0.1), на основе текущего приложения в Store Connect;
- Загрузите новую сборку с увеличенным номером билда (например, 1.0.1 (2));
- Обновите мета-данные, если изменились;
- Пройдите ревью — да, даже минорные изменения требуют одобрения.
Для автоматизации процесса загрузки используется 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.
