Apple Developer Apps: гид для разработчиков

Apple Developer Apps — настройка приложения перед публикацией

Написать код — это только часть пути от идеи до приложения в App Store. Между сборкой в Xcode и публикацией стоит целая цепочка настроек Apple Developer: App ID, provisioning-профили, сертификаты подписи и правила App Review. В этом техническом руководстве разберём, как подготовить приложение к публикации через Apple Developer без типичных ошибок, из-за которых сборки отклоняют на этапе загрузки.

Что нужно настроить в Apple Developer перед публикацией app

Прежде чем загружать приложение в App Store Connect, в аккаунте Apple Developer нужно настроить несколько связанных сущностей.

  • App ID — уникальный идентификатор приложения (bundle identifier).
  • Сертификаты (Certificates) — подтверждают, что сборку подписал именно ваш аккаунт.
  • Provisioning-профили — связывают App ID, сертификат и устройства для тестирования.
  • Capabilities — включённые возможности приложения: push, iCloud, In-App Purchase.

Пошаговая настройка приложения в Apple Developer

  1. В разделе Certificates, Identifiers & Profiles создайте App ID с нужным bundle identifier.
  2. Включите необходимые Capabilities — только те, что реально использует приложение, лишние права затягивают модерацию.
  3. Создайте Development-сертификат для тестирования на устройствах и Distribution-сертификат для публикации.
  4. Сформируйте provisioning-профиль под каждый тип сборки — Development и App Store.
  5. В Xcode подключите профиль в настройках подписи (Signing & Capabilities) и соберите архив для загрузки.

Типичные ошибки при подготовке приложения

Ошибка Причина Как избежать
Invalid Provisioning Profile Профиль не соответствует сертификату или устройству Пересоздать профиль после любых изменений Capabilities
Missing Push Notification Entitlement Push включён в коде, но не в App ID Синхронизировать Capabilities в Xcode и в Apple Developer
Отклонение из-за лишних разрешений Запрошены права, которые приложение не использует Указывать только фактически нужные Capabilities

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

Самая частая причина, по которой сборка отклоняется на этапе загрузки, — рассинхронизация между Capabilities, включёнными в Xcode, и теми, что реально настроены для App ID на сайте developer.apple.com. Перед каждой публикацией стоит сверять два списка вручную: это занимает пять минут, но экономит день ожидания повторной проверки.

Чек-лист перед отправкой сборки в App Store Connect

Прежде чем нажимать Distribute App в Xcode, полезно пройтись по короткому списку — большинство отклонений на этапе загрузки (не путать с App Review) можно предотвратить именно на этом шаге.

  • Версия и номер сборки (Build) увеличены по сравнению с предыдущей загрузкой
  • Выбран правильный Distribution-сертификат, а не Development
  • Provisioning-профиль соответствует актуальному набору Capabilities
  • Иконка приложения заполнена во всех обязательных размерах Asset Catalog
  • Экспортные настройки шифрования (Export Compliance) указаны корректно

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

Xcode предлагает два режима работы с сертификатами и профилями — и выбор между ними влияет на то, как быстро вы сможете диагностировать проблему.

Automatically manage signing

Xcode сам создаёт и обновляет сертификаты и provisioning-профили при каждой сборке. Удобно для соло-разработчиков и небольших команд, но иногда создаёт лишние сертификаты, если над одним App ID работают сразу несколько человек.

Manual signing

Разработчик сам выбирает конкретный сертификат и профиль для каждой конфигурации сборки. Даёт полный контроль и предсказуемость — обычно выбор команд с CI/CD-пайплайнами, где сборка происходит на выделенном сервере без интерактивного входа в Xcode.

Как диагностировать ошибку подписи за три шага

  1. Откройте Keychain Access и убедитесь, что нужный сертификат присутствует и не помечен как истёкший.
  2. В Xcode проверьте Signing & Capabilities — совпадает ли выбранный Team и профиль с ожидаемым.
  3. Если ошибка сохраняется, удалите Derived Data (папку кэша сборки) и пересоберите проект с нуля.

FAQ по приложениям в Apple Developer

Чем отличается Development и Distribution сертификат?

Development-сертификат нужен для тестирования на подключённых устройствах, Distribution — для публикации приложения через App Store или TestFlight.

Можно ли изменить bundle identifier после публикации?

Нет, App ID и bundle identifier нельзя изменить после первой отправки приложения в App Store — потребуется создавать новое приложение.

Почему приложение не устанавливается на тестовое устройство?

Чаще всего дело в том, что UDID устройства не добавлен в provisioning-профиль или профиль устарел после изменения Capabilities.

Нужен ли отдельный App ID для каждой платформы (iOS, macOS)?

Если это одно приложение с общим кодом, обычно достаточно одного App ID с поддержкой нужных платформ.

Что делать, если Xcode создаёт дубли сертификатов при работе в команде?

Перейти на ручное управление подписью (Manual signing) и договориться в команде об одном общем Distribution-сертификате вместо создания личных для каждого участника.

Итог

Подготовка приложения в Apple Developer — это не разовая настройка, а процесс, который нужно синхронизировать с каждым изменением кода: новые возможности требуют обновления Capabilities, профилей и сертификатов. Чек-лист перед загрузкой и понимание разницы между автоматическим и ручным управлением подписью экономят часы отладки на финальном этапе. Если вы ещё не оформили платную программу, необходимую для публикации, начните с материала «Apple Developer Program: как работает и что даёт».