Введение / Зачем это нужно
Provisioning Profile (профиль развертывания) — это критически важный файл в экосистеме Apple, который разрешает запуск вашего приложения на конкретных устройствах или в App Store. Без корректно настроенного профиля Xcode не сможет установить приложение на iPhone/iPad, даже если проект собран без ошибок. Этот гайд покрывает полный цикл создания профиля для разработки (Development) и дистрибуции (App Store/Ad Hoc) через Apple Developer Portal и Xcode.
Требования / Подготовка
Перед началом убедитесь, что у вас есть:
- Учётная запись Apple ID, добавленная в Apple Developer Program (платная) или бесплатный аккаунт разработчика.
- Mac с установленным Xcode (версия 15 или новее) и доступом в Keychain Access.
- Bundle Identifier вашего проекта (находится в Xcode:
Target→General→Identity→Bundle Identifier). - Для Development профиля: UDID устройств, на которые планируется установка (макс. 100 для платного аккаунта).
- Для дистрибутивных профилей: готовый Distribution Certificate (App Store или Ad Hoc).
Шаг 1: Вход в Apple Developer Portal и проверка App ID
Все операции с профилями выполняются на веб-портале Apple Developer.
- Откройте developer.apple.com и войдите в свою учётную запись.
- Перейдите в раздел Certificates, Identifiers & Profiles (или найдите его через поиск).
- В левом меню выберите Identifiers → App IDs.
- Найдите в списке App ID, соответствующий Bundle Identifier вашего приложения (например,
com.example.myapp). Если его нет, нажмите + для создания:- App ID Description: Любое описание (например, "MyApp Development").
- Bundle ID: Точное значение из Xcode. Выберите тип App.
- Остальные опции (Capabilities) настраивайте по мере необходимости (Push Notifications, Sign In with Apple и т.д.).
- Запомните App ID Prefix (Team ID) и Bundle ID — они понадобятся позже.
Шаг 2: Создание сертификата разработчика (если отсутствует)
Provisioning Profile всегда привязан к сертификату. Для профиля разработки нужен Development Certificate.
- В разделе Certificates нажмите +.
- Выберите Apple Development (ранее iOS App Development) → Continue.
- Сгенерируйте CSR (Certificate Signing Request) на вашем Mac:
- Откройте Keychain Access (Программы → Утилиты).
- В меню
Keychain Access→Certificate Assistant→Запросить сертификат у центра сертификации.... - Введите email, общее имя (например, "iPhone Developer: Имя Фамилия (TeamID)"), выберите
Сохранить на дискиПозволять мне указать расширенные настройки. НажмитеПродолжитьи сохраните файл.certSigningRequest.
- Загрузите полученный CSR файл на портал Apple → Continue → Download.
- Двойным кликом загрузите скачанный файл
.cer— он установится в Keychain Access в разделMy Certificates. Убедитесь, что сертификат имеет маленький треугольник, раскрывающий приватный ключ.
Шаг 3: Добавление устройств (только для Development Profile)
Если вы создаёте профиль для тестирования на реальных устройствах, их необходимо предварительно зарегистрировать.
- В разделе Devices (на портале Apple Developer) нажмите +.
- Введите Device Name (например, "iPhone 15 Pro Max") и UDID.
- Как получить UDID: Подключите устройство к Mac, откройте Xcode →
Window→Devices and Simulators. Выберите устройство в списке, скопируйте длинный идентификатор (Identifier) или нажмите "Copy UDID".
- Как получить UDID: Подключите устройство к Mac, откройте Xcode →
- Повторите для каждого тестового устройства. Учитывайте лимит (100 для платного аккаунта).
Шаг 4: Создание Provisioning Profile
Теперь соберём все компоненты в профиль.
- В разделе Profiles нажмите +.
- Выберите тип профиля:
- iOS App Development — для тестирования на зарегистрированных устройствах.
- App Store — для публикации в App Store (устройства не выбираются).
- Ad Hoc — для распространения вне App Store (до 100 устройств в год).
- Enterprise — для внутреннего распространения внутри компании (требует Enterprise Program).
- Нажмите Continue.
- Выберите App ID из списка (тот, что создали в Шаге 1) → Continue.
- Выберите сертификат(ы): Отметьте галочкой Development Certificate (или Distribution для App Store/Ad Hoc). Можно выбрать несколько → Continue.
- Выберите устройства (только для Development и Ad Hoc): Выберите все устройства, на которые нужно установить приложение → Continue.
- Задайте имя профиля: Например,
MyApp_Dev_2026→ Generate. - Скачайте полученный файл
.mobileprovisionи двойным кликом установите его. Файл автоматически добавится в Xcode (Xcode→Settings→Accounts→ выберите свою Apple ID →Manage Certificates).
Шаг 5: Настройка проекта Xcode и сборка
После установки профиля нужно привязать его к проекту.
- Откройте проект в Xcode.
- Выберите Target → вкладка General.
- В разделе Signing & Capabilities:
- Team: Выберите вашу команду (Apple ID).
- Bundle Identifier: Должен точно совпадать с Bundle ID из выбранного App ID.
- Provisioning Profile: Если Xcode не выбрал профиль автоматически, нажмите на текущее значение (например, "Automatically manage signing") и выберите нужный профиль из выпадающего списка.
- Signing Certificate: Должен соответствовать типу профиля (например, "Apple Development" для Development Profile).
- Важно: Если выключите "Automatically manage signing", убедитесь, что выбраны оба поля: и Provisioning Profile, и Signing Certificate.
- Выберите сборку (Build) для реального устройства (не симулятора). При успешной сборке Xcode подпишет приложение выбранным профилем.
Проверка результата
- Установка на устройство: Подключите iPhone/iPad к Mac. В Xcode выберите устройство как цель сборки (Run). Приложение должно установиться без ошибок.
- Проверка профиля на устройстве: На устройстве перейдите в
Настройки→Основные→VPN и управление устройством(илиПрофили). Вы должны увидеть установленный профиль разработчика с названием вашего App ID. - Для App Store: После сборки с App Store профилем архив (
.xcarchive) должен успешно проходить валидацию (Product→Archive→Validate App) без ошибок подписи.
Возможные проблемы
Ошибка: No profiles for 'com.example.myapp' were found
- Причина: Bundle Identifier в проекте Xcode не совпадает ни с одним App ID, для которого есть профиль.
- Решение: Проверьте Bundle Identifier в
Target→General. Убедитесь, что на портале Apple Developer существует App ID с таким же значением. Пересоздайте профиль, выбрав правильный App ID.
Ошибка: Provisioning profile "..." doesn't include the device
- Причина: UDID вашего устройства отсутствует в Development/Ad Hoc профиле.
- Решение: Добавьте устройство в раздел
Devicesна портале Apple Developer, затем отредактируйте (Edit) существующий профиль, добавив новое устройство, и переустановите обновлённый.mobileprovisionфайл.
Ошибка: The app is not authorized to use the specified entitlement
- Причина: В проекте включена Capability (например, Push Notifications, App Groups), но соответствующая настройка не активирована для App ID на портале.
- Решение: В Apple Developer Portal откройте нужный App ID →
Edit→ включите все Capabilities, которые используются в Xcode (Signing & Capabilities). После этого пересоздайте provisioning profile.
Профиль не появляется в Xcode
- Причина: Файл
.mobileprovisionне был установлен (двойным кликом) или установлен для другой учётной записи/команды. - Решение: Убедитесь, что вы вошли в Xcode (
Settings→Accounts) в ту же Apple ID, которая использовалась на портале. Переустановите профиль двойным кликом. Перезапустите Xcode.
Срок действия профиля истёк
- Причина: Профили (как Development, так и Distribution) действуют 1 год с даты создания. Сертификаты также имеют срок.
- Решение: В разделе
Certificates, Identifiers & Profilesна портале проверьте сроки. Для продления создайте новый профиль (старый удалите). При смене сертификата старый профиль станет невалидным — нужно будет создать новый, привязанный к новому сертификату.