Гид по технологиям

Как загрузить и отправить iOS‑приложение в App Store

11 min read iOS Обновлено 12 Apr 2026
Загрузить iOS‑приложение в App Store
Загрузить iOS‑приложение в App Store

iPhone с приложением на экране

Ниже — подробное руководство для разработчиков, которые впервые публикуют приложение. Статья покрывает создание App ID, сертификатов и профилей, настройку Xcode, создание архива и загрузку в iTunes Connect. Дополнительно — чеклисты, методики тестирования, решение типичных ошибок и рекомендации по восстановлению после потерь сертификатов.

Основные требования и подготовка

Перед началом убедитесь в следующем:

  • У вас есть платная учётная запись Apple Developer: 99 долларов США в год. Это обязательное условие для отправки приложений в App Store.
  • Apple ID содержит актуальную контактную информацию и точный почтовый адрес (иногда требуется подтверждение документов).
  • Приложение протестировано в симуляторе и на реальных устройствах. Отладочные логи очищены, серьёзных ошибок и утечек памяти нет.
  • Иметь резервное копирование приватного ключа сертификата (экспорт .p12) и точные данные банковского счёта для выплат (если планируете продажи).

Определения в один абзац:

  • App ID — уникальный идентификатор приложения, обычно в формате обратного домена, например com.example.myapp.
  • Сертификат распределения (Distribution Certificate) — криптографическая подпись, подтверждающая авторство сборки.
  • Provisioning Profile — профиль, связывающий App ID, сертификат и разрешения приложения.

Важно: многие проблемы при архивации и загрузке связаны с неправильной комбинацией Project/Target настроек “Skip Install” и выбором неподходящего provisioning profile.

Краткий порядок действий

  1. Создать App ID в iOS Provisioning Portal и синхронизировать bundle identifier в Xcode.
  2. Создать Distribution Certificate через Keychain Access и портал сертификатов.
  3. Создать Distribution Provisioning Profile (App Store) и установить его в систему.
  4. Убедиться, что настройки Code Signing в Xcode указывают на созданный профиль для Release.
  5. Проверить схемы Xcode и настройки Skip Install (Project: Yes, Target: No).
  6. Сделать Archive и отправить сборку через Organizer или через Transporter.
  7. Создать запись приложения в iTunes Connect, заполнить метаданные, скриншоты и цену/страны.

Создание App ID

  1. Зайдите в iOS Provisioning Portal на developer.apple.com и откройте раздел App ID.
  2. Нажмите «Create» (Создать) и задайте удобное описание для себя.
  3. В поле Bundle Identifier используйте обратный домен: com.company.appname (например com.makeuseof.demoapp).
  4. В Xcode откройте Target → Summary и установите Identifier в значение, которое вы задали.

создание App ID и bundle identifier

Проверка: идентификатор в Xcode и в Portal должны совпадать без лишних пробелов.

Создание Distribution Certificate

Это безопасный сертификат, который подписывает ваш код — сохраните приватный ключ.

Шаги:

  1. Откройте Keychain Access на macOS. В меню Preferences временно отключите OCSP и CRL (см. инструкции Apple). Это иногда упрощает запрос сертификата.
  2. В Keychain Access выберите Certificate Assistant → Request a Certificate From a Certificate Authority.
  3. Укажите e‑mail (CA‑e‑mail не требуется), выберите «Saved to disk» и «Let me specify key pair information».
  4. Выберите ключ 2048 бит и алгоритм RSA. Сохраните .csr на диск.
  5. В Provisioning Portal → Certificates → Distribution → Add Certificate загрузите созданный .csr.
  6. Параллельно скачайте и установите WWDR intermediate certificate с сайта Apple (двойной клик для установки).
  7. После одобрения скачайте и установите ваш distribution certificate (.cer). Оно появится в Keychain.
  8. Экспортируйте приватный ключ: в Keychain Access найдите пару сертификат+ключ, выделите, правой кнопкой → Export Item и сохраните .p12. Надёжно храните этот файл и пароль к нему.

создание запроса сертификата в Keychain Access

Важно: без экспортированного приватного ключа вы не сможете подписывать сборки на другой машине или после переустановки macOS.

Создание Distribution Provisioning Profile

  1. В Provisioning Portal откройте Provisioning → Distribution и создайте новый профиль.
  2. Выберите метод Distribution → App Store, укажите имя профиля и App ID, затем сохраните.
  3. После генерации скачайте профиль и установите — он появится в Xcode автоматически.

Проверка: откройте Xcode → Window → Organizer → Devices → Provisioning Profiles и убедитесь, что профиль присутствует.

Проверка Code Signing и Build Settings

  1. В Xcode откройте Project → Build Settings и найдите раздел Code Signing.
  2. Для конфигурации Release у Project и Target укажите созданный Distribution Provisioning Profile и соответствующий сертификат.
  3. Убедитесь, что в настройках выбран правильный Team (команда разработчика).

проверка подписи кода в Xcode

Совет: если Xcode автоматически управляет подписью (Automatic signing), оно может менять профили. Для большей предсказуемости используйте Manual signing и явно указывайте профиль.

Архивация приложения

Подготовка схемы:

  1. В Xcode выберите Product → Scheme → Edit Scheme.
  2. Убедитесь, что действие Archive использует конфигурацию Release.

Ключевая деталь Skip Install:

  • В Project Build Settings найдите Skip Install и установите Yes (для Project).
  • В Target Build Settings для Skip Install установите No.

Некорректная комбинация (Project: Yes; Target: Yes) приводит к отсутствию архива или пустому .xcarchive.

Архивирование и отправка:

  1. В меню выберите Product → Archive.
  2. Дождитесь завершения сборки и перейдите в Window → Organizer → Archives.
  3. Выберите архив и нажмите Distribute App → App Store Connect → Upload (или Validate, чтобы проверить перед отправкой).

Если у вас возникают проблемы с загрузкой из Organizer, можно использовать Transporter (приложение Apple для загрузки .ipa/.pkg в App Store Connect) или altool из command‑line.

Создание записи приложения в iTunes Connect

  1. Войдите в iTunes Connect (App Store Connect).
  2. Выберите My Apps → + → New App.
  3. Укажите название приложения, основной язык, Bundle ID (выберите из списка тот, что создали) и SKU.
  4. Заполните метаданные: описание, ключевые слова, скриншоты для разных устройств, иконки, возрастной рейтинг.
  5. Укажите политику распространения: бесплатное или платное, страны распространения и подключение iAd (если нужно).
  6. При продаже приложений заполните банковские и налоговые данные и подпишите соответствующие контракты.

Когда запись готова и статус — Waiting for Upload, вернитесь в Xcode Organizer и отправьте архив.

После отправки статус в App Store Connect изменится на Processing, а затем на Waiting for Review. Процесс ревью обычно занимает от нескольких дней до пары недель в зависимости от очереди и сложности приложения.

Чеклист перед отправкой (короткий)

  • Bundle identifier совпадает в Xcode и в Portal.
  • Сертификат Distribution установлен и приватный ключ экспортирован и сохранён.
  • Provisioning Profile для App Store установлен и выбран в Release.
  • Scheme Archive настроена на Release.
  • Project Skip Install = Yes; Target Skip Install = No.
  • Скриншоты и метаданные заполнены в iTunes Connect.
  • Версии и build‑номера инкрементированы (CFBundleShortVersionString и CFBundleVersion).
  • Приложение тестировано на реальных устройствах и удовлетворяет App Store Guidelines.

Расширенные рекомендации и типичные ошибки

  1. Ошибка: “No valid signing identity found” — обычно приватный ключ не установлен или профиль не связан с текущим сертификатом. Решение: убедитесь, что .p12 импортирован и сертификат присутствует в Keychain.
  2. Ошибка: “Archive failed” с неясной причиной — проверьте логи сборки в Xcode, убедитесь, что все подмодули и библиотеки доступны для Release конфигурации.
  3. Проблема: приложение не появляется в App Store Connect после загрузки — иногда помогает выход из учетной записи в Xcode и повторный вход, либо использование Transporter.
  4. Ошибка валидации: использование неподдерживаемых API — ознакомьтесь с App Store Review Guidelines и уберите запрещённые вызовы.

Совет по отладке: включите детальный лог отправки и сохраните лог .xcactivitylog для анализа. Часто там видна причина отказа архивации или валидации.

Когда процесс не работает: альтернативные подходы

  • Загрузка через Transporter: если Xcode Organizer не будет работать, экспортируйте .ipa и загрузите его через Transporter (App Store Connect → My Apps → Upload) или altool.
  • Использование CI/CD: автоматизация с помощью Fastlane избавит от ручного создания CSR, профилей и загрузки; Fastlane может хранить профили в репозитории и упрощает перенос между машинами.
  • В случае потери приватного ключа: отозвать старый сертификат в Provisioning Portal и создать новый, затем сгенерировать новые provisioning profiles.

Методика тестирования перед релизом (минимальная)

  • Sanity тесты: установка, запуск, базовая навигация.
  • Тесты на реальных устройствах: iPhone и iPad с различными версиями iOS, если поддержка заявлена.
  • Тесты производительности: время запуска, основная нагрузка, замеры FPS для графических приложений.
  • Сетевая устойчивость: тесты в режиме медленной сети и при потере соединения.
  • Тесты разрешений: проверка запросов на доступ к камере, геолокации, контактам и корректная обработка отказов.

Критерии приёмки

  • Приложение устанавливается и запускается без аварий.
  • Все критические пути работают (регистрация, покупка, основной функционал).
  • Версия и build‑номер заданы корректно и инкрементированы.
  • Скриншоты соответствуют интерфейсу приложения и не вводят в заблуждение.

Ролевые чеклисты

Разработчик:

  • Убедиться, что проект компилируется в Release.
  • Экспортировать приватный ключ (.p12) и сохранить в безопасном хранилище.
  • Подготовить тестовые учётные записи для QA.

Руководитель релиза / релиз‑менеджер:

  • Проверить метаданные и локализации в App Store Connect.
  • Убедиться в заполнении банковских данных и подписанных контрактах.
  • Назначить ответственных за мониторинг отзывов после релиза.

QA инженер:

  • Выполнить регрессионное тестирование на минимум трёх устройствах.
  • Фиксировать баги с шагами воспроизведения и логами.
  • Проверить работоспособность In‑App Purchase и подписок в sandbox.

Восстановление и миграция сертификатов

Сценарий: вы переустановили macOS или сменили машину, а старые сертификаты/ключи потеряны.

Действия:

  1. Если у вас есть экспортированный .p12 — импортируйте его в Keychain, затем убедитесь, что WWDR установлен.
  2. Если .p12 отсутствует — отозовите (Revoke) старый Distribution Certificate в панели Apple Developer и создайте новый. После создания генерируйте новые provisioning profiles и установите их в Xcode.
  3. Проверьте, что в Xcode выбран новый сертификат и профиль для Release.

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

Безопасность и приватность

  • Храните экспортированные приватные ключи (.p12) в зашифрованном хранилище с двухфакторной аутентификацией.
  • Не выкладывайте provisioning profiles или сертификаты в публичные репозитории.
  • Если ваше приложение обрабатывает персональные данные пользователей (особенно из ЕС), убедитесь, что вы соответствуете требованиям GDPR: указывайте политику конфиденциальности и способы удалённого удаления данных.

Часто встречающиеся вопросы

Сколько времени занимает ревью приложения?

Процесс может занять от нескольких дней до двух недель в зависимости от очереди и сложности приложения.

Нужно ли подписывать каждую сборку новым сертификатом?

Нет. Сертификат действует до его отзыва или истечения срока. Но при смене машины нужен приватный ключ или создание нового сертификата.

Можно ли изменить bundle identifier после создания приложения в iTunes Connect?

Нет. Bundle ID связывает запись приложения в App Store с вашими provisioning profiles. Его менять нельзя — нужно создать новую запись приложения.

Decision flowchart (Mermaid)

flowchart TD
  A[Начало: есть Apple Developer account?] -->|Да| B{Есть приватный ключ '.p12'?}
  A -->|Нет| Z[Зарегистрировать платную учётную запись 99 $/год]
  B -->|Да| C[Создать/проверить App ID]
  B -->|Нет| D[Сгенерировать CSR и создать Distribution Certificate]
  D --> C
  C --> E[Создать Provisioning Profile 'App Store']
  E --> F[Настроить Xcode: Code Signing, Skip Install, Scheme]
  F --> G[Archive и Upload]
  G --> H[Создать/заполнить App в App Store Connect]
  H --> I[Ожидание Review]
  I --> J{Успех?}
  J -->|Да| K[Релиз]
  J -->|Нет| L[Исправить замечания и повторить]

Дополнительные рекомендации по локали и магазинам

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

Примеры сообщений поддержки и шаблоны

Шаблон письма в поддержку Apple при проблемах с переносом Apple ID между странами:

Тема: Request to transfer Apple ID country/address

Hello,

I need assistance transferring my Apple ID from Japan to United Kingdom. The account has active Apple Developer membership and I need to update the billing/address details to continue app submissions. Account email: your.email@example.com

Please advise the necessary steps and required documents.

Regards, Your Name

(Переведите и адаптируйте письмо на русский при обращении в местную поддержку.)

Критерии приёмки

  • Приложение успешно загружается в App Store Connect и проходит проверку в Organizer без ошибок подписи.
  • В App Store Connect заполнены все обязательные поля: описание, скриншоты, категория и возрастной рейтинг.
  • Билд проходит внутреннее тестирование (подпись и работа функций), а sandbox‑покупки выполняются корректно.

Итог и рекомендации

Процесс публикации приложения в App Store кажется сложным только при первом запуске. Основные точки отказа — неподходящие сертификаты, неправильные настройки Skip Install и расхождения bundle identifier. Если строго следовать чеклисту и аккуратно хранить приватные ключи, повторные релизы становятся рутинной задачей.

Важно: автоматизируйте рутинные шаги (CSR, профили, загрузку) с помощью инструментов типа Fastlane, особенно если вы поддерживаете несколько приложений или работаете в команде.

Summary:

  • Подготовьте аккаунт, App ID, сертификат и provisioning profile заранее.
  • Проверьте настройки Code Signing и Skip Install перед архивированием.
  • Храните приватные ключи безопасно и делайте резервные копии.
  • Используйте Transporter или Fastlane как альтернативу при проблемах с Xcode Organizer.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Покраска 3D-печатных моделей — полное руководство
3D-печать

Покраска 3D-печатных моделей — полное руководство

Как узнать версию iOS на iPhone
iPhone

Как узнать версию iOS на iPhone

Mii на Nintendo Switch — создание и настройка
Gaming

Mii на Nintendo Switch — создание и настройка

Подписка Twitter Blue: подключение и стоит ли платить
соцсети

Подписка Twitter Blue: подключение и стоит ли платить

Установка Android‑приложений на BlackBerry 10
Мобильные устройства

Установка Android‑приложений на BlackBerry 10

Шифрование файлов в Linux с OpenSSL
Безопасность

Шифрование файлов в Linux с OpenSSL