«Xcode 27 завершает сборку, но сообщает об ошибке подписи».
Самый быстрый путь — определить этап сбоя и проверить его причину, прежде чем менять сертификаты и профили. Если проблему нельзя воспроизвести на текущем компьютере или права команды неясны, проведите диагностику в отдельной среде macOS, а проверку на устройстве и исследовательские разрешения выполните отдельно. Сверьте статус версии и применимые требования с официальными примечаниями к выпуску Xcode 27.
Руководство предназначено студентам и аспирантам, которым нужно передать исследовательское приложение тестировщикам, но мешает сбой подписи или архивации.
Разработчики исследовательских групп смогут проверить взаимосвязь команды, сертификата и профиля подготовки.
Технические специалисты лабораторий без доступного Mac — определить, можно ли обойтись имеющейся машиной или нужна изолированная среда macOS.
Последнее обновление — 29 сентября 2026 года; ход проверки сопоставлен с документацией Apple по Xcode, учётным записям разработчиков и App Store Connect. Примечания к Xcode 27 описывают официальный выпуск, но не подтверждают совместимость каждой исследовательской программы и среды. Перед диагностикой проверьте текущий статус версии и её требования в примечаниях к выпуску Xcode 27.
Этап сбоя вместо предположения о сертификате
Формулировка «не удалось подписать» может появиться во время разных операций. Ошибка компиляции исходного кода не исправляется обновлением профиля, а отказ при установке не всегда связан с локальной подписью. Поэтому сначала зафиксируйте, где остановилась цепочка.
Запишите полный текст ошибки, целевой объект, конфигурацию сборки, выбранный SDK и выполняемое действие: сборка, запуск, архивирование, экспорт, загрузка или установка. Сохраните журнал сборки и сведения о версии Xcode. Отметьте, какая учётная запись и команда использовались, но не включайте в диагностический отчёт пароли и закрытые ключи.
Разделите проблему по наблюдаемому результату:
- Сборка не завершилась. Выясните, остановилась ли компиляция или Xcode уже перешёл к подписи. Если ошибка относится к компилятору или зависимости, сначала проверяйте исходный код и конфигурацию сборки.
- Сборка завершилась, а запуск или подпись отклонены. Проверьте команду, идентификатор приложения, профиль и доступность связанного закрытого ключа.
- Архив создан, но экспорт не проходит. Проверьте назначение экспорта и параметры подписи. Создание архива само по себе не подтверждает правильность экспорта.
- Загрузка или установка не удалась. Сохраните ошибку именно этого этапа. Обработка загруженной сборки и установка на устройство — отдельные проверки.
Apple описывает запуск на симуляторе и физическом устройстве как разные сценарии. Убедитесь, что сравниваете сборки с одинаковым назначением, а не, например, запуск в симуляторе и установку на устройство. Инструкция Apple по запуску приложения на симуляторе или устройстве.
До проверки исходного состояния не очищайте связку ключей и не удаляйте существующие профили. Массовая очистка может уничтожить полезные диагностические сведения и создать новые проблемы вместо устранения исходной.
Права команды вместо догадки о настройках проекта
Если Xcode просит выбрать команду разработчиков, сначала проверьте, для какой операции она нужна. Локальная сборка и подготовка приложения для запуска на устройстве или распространения могут требовать разных настроек подписи. Для последних операций важны команда, доступ учётной записи и конфигурация целевого объекта.
В настройках целевого объекта откройте Signing & Capabilities. Проверьте выбранную команду и идентификатор приложения, затем убедитесь, что в Xcode используется нужная учётная запись и она имеет доступ к этой команде. Недостаточно увидеть имя учётной записи в настройках: нужно подтвердить права на ресурсы, используемые проектом.
Apple предусматривает разные роли и уровни доступа. Если команда не отображается, действие недоступно или Xcode сообщает о недостаточных правах, попросите администратора команды проверить членство и назначенную роль. Описание ролей и доступа в программе разработчиков.
В вузовском проекте права могут контролироваться руководителем лаборатории или техническим администратором, а не человеком, который непосредственно собирает приложение. Не обходите проблему общей учётной записью: такой подход затрудняет контроль доступа и выяснение того, кто менял настройки. Если администратор не подтвердил права, остановитесь до изменения активов подписи.
Критерий повторной проверки: после подтверждения команды выполните то же действие для того же целевого объекта. Если сообщение о команде исчезло, но появилось сообщение о профиле или сертификате, это уже следующий этап диагностики. Если ошибка не изменилась, проверьте, какую команду и конфигурацию фактически использует сборка.
Сертификат и профиль подготовки вместо массового пересоздания
Действующий сертификат ещё не означает, что подпись будет успешной. На текущем Mac может не оказаться закрытого ключа; профиль может не соответствовать идентификатору приложения или сценарию; параметры проекта могут ссылаться на другую команду.
Перед исправлениями запишите текущий режим — автоматический или ручной, — идентификатор приложения, команду и выбранные профиль с сертификатом. Затем проверьте связку ключей на машине, где выполняется сборка. Важно не только наличие сертификата, но и доступность связанного закрытого ключа. Apple описывает типы сертификатов и принципы защиты в обзоре сертификатов.
После этого проверьте профиль подготовки: подходит ли он для выбранного сценария, связан ли с нужным идентификатором приложения и включает ли целевое устройство, если оно требуется для проверки. Порядок создания профиля разработки описан в руководстве Apple по профилям подготовки.
Порядок действий зависит от типа подписи:
- Автоматическая подпись. Сначала проверьте команду и настройки целевого объекта. Повторите сборку после подтверждения прав и зафиксируйте, исчезло ли сообщение о профиле. Не переходите на ручное управление только для обхода ошибки: это добавит работу с активами, но не обязательно устранит исходную причину.
- Ручная подпись. Сопоставьте профиль, сертификат, закрытый ключ и идентификатор приложения. Если профиль устарел или не соответствует устройству, следуйте официальной процедуре его обновления или создания. Не удаляйте другие сертификаты команды до подтверждения, что они не нужны.
- Сбой только на одной машине. Сравните настройки с рабочей средой, не копируя закрытый ключ без разрешения администратора. Запишите, зависит ли результат от конкретной машины. Пока это только диагностическая гипотеза, а не доказательство ошибки Xcode или проекта.
Исправление можно считать проверенным, если тот же целевой объект с прежней конфигурацией проходит тот же этап, а журнал больше не указывает на несоответствие сертификата, профиля или устройства. Если ошибка остаётся, перепроверьте идентификатор приложения и наличие закрытого ключа, а не создавайте новые активы без установленной причины.
Entitlements и возможности для каждого целевого объекта
После включения возможности приложения подпись зависит от согласованности настроек проекта, файла entitlements и разрешений команды. Успешная подпись основного приложения не доказывает, что правильно настроены расширения и другие целевые объекты.
Составьте список целевых объектов проекта и проверяйте каждый отдельно. Сопоставьте включённые возможности, entitlements и команду. Если ошибка началась после добавления возможности, выясните, поддерживается ли она для приложения и предоставлен ли необходимый доступ. Apple отдельно описывает включение возможностей приложения и запрос доступа к управляемым возможностям.
Проверьте и конфигурации сборки. Настройки для тестирования и архивации могут различаться, как и параметры расширения и основного приложения. Посмотрите, какой целевой объект указан в сообщении об ошибке, и повторите сборку именно с соответствующей конфигурацией. Не переносите настройки с работающего объекта на проблемный без проверки их назначения.
В исследовательском проекте техническая проверка entitlements не заменяет процедуру согласования доступа к данным или участия испытуемых. Если изменение затрагивает получение или обработку исследовательских данных, подтвердите его с ответственным за процесс. Подпись приложения не является подтверждением того, что исследовательский сценарий разрешён.
Архив, экспорт и раздача как отдельные этапы
Созданный архив ещё не доказывает, что приложение можно экспортировать, загрузить или установить. Фиксируйте результат для каждого этапа отдельно. Это позволяет не менять сертификат, если проблема возникла при последующей обработке сборки.
Начните с экспорта: сохраните выбранный способ распространения и используемые параметры подписи. Затем отдельно проверьте загрузку и состояние обработки. Если загрузка завершилась, а сборка позднее отклонена или не появилась у тестировщиков, ищите конкретное сообщение на этапе обработки. Не трактуйте задержку после передачи архива как доказательство сбоя локальной подписи.
Для проверки используйте документацию Apple по бета-тестированию и распространению приложения и инструкцию по загрузке сборки и проверке её обработки. Они помогают сверить этап доставки, но не заменяют журнал вашей сборки.
Проверяйте цепочку по отдельным контрольным точкам:
- Экспорт: подходит ли выбранное назначение архива и относится ли он к нужному целевому объекту.
- Загрузка: завершилась ли передача и какое состояние обработки отображается.
- Раздача тестировщикам: соответствует ли сборка выбранному способу тестирования и могут ли получатели получить доступ.
- Установка: воспроизводится ли проблема на целевом устройстве и какое сообщение появляется при установке.
Если полный проект не проходит проверку, соберите минимальный тестовый проект с той же командой и сопоставимыми настройками подписи. Успех минимального проекта направит проверку к различиям целевых объектов, конфигураций и entitlements. Если проблема повторяется и там, проверьте права и состояние среды с администратором. Не включайте в тест реальных участников или данные, которые не требуются для диагностики.
Временная последовательность и выбор среды
Начинайте с обратимых действий, а к изменению активов переходите только после фиксации исходного состояния. Сначала сохраните симптом и журнал, затем проверьте команду, после неё — сертификат, профиль и entitlements. Только после этих проверок переходите к архиву, экспорту и распространению.
Порядок диагностики
- Зафиксируйте ошибку. Сохраните её полный текст, журнал, версию Xcode, целевой объект, конфигурацию и действие, при котором возник сбой.
- Определите этап. Установите, остановился ли процесс при сборке, подписи, архивировании, экспорте, загрузке или установке.
- Проверьте команду. Убедитесь, что выбрана нужная команда. При недостатке прав запросите проверку у администратора до изменения активов.
- Сопоставьте активы. Проверьте идентификатор приложения, сертификат, наличие закрытого ключа, профиль и целевое устройство. Запишите исходные настройки.
- Проверьте entitlements. Сверьте возможности каждого целевого объекта и его конфигурации.
- Повторите минимальную проверку. Выполните только действие, которое завершилось ошибкой, и сохраните новый журнал.
- Выберите среду. Если сбой зависит от состояния компьютера или его нельзя проверить, повторите диагностику в изолированной среде macOS либо передайте материалы администратору.
Инструмент выбора: контрольный список и ветвление решения
Пройдите пункты по порядку. Отмечайте только то, что подтверждено настройками или журналом, а не предположениями:
- [ ] Записан полный текст ошибки и установлен конкретный этап: сборка, подпись, архив, экспорт, загрузка или установка.
- [ ] Подтверждены команда разработчиков, учётная запись и достаточные права для требуемой операции.
- [ ] Сопоставлены идентификатор приложения, сертификат, профиль подготовки и нужное целевое устройство.
- [ ] Проверено наличие закрытого ключа сертификата на Mac, где выполняется сборка.
- [ ] Проверены entitlements основного приложения, расширений и используемой конфигурации.
- [ ] Повторён тот же этап на минимальном проекте или после одного контролируемого изменения.
- [ ] Отдельно определено, нужна ли проверка на физическом устройстве, с датчиком или в исследовательском сценарии.
Выбирайте исправление на текущем Mac, если права подтверждены, ошибка указывает на конкретное несоответствие профиля или сертификата, а нужный закрытый ключ доступен. Исправьте только этот элемент и повторите тот же этап.
Передайте проверку администратору, если команда или роль не подтверждены, сертификат принадлежит команде, но закрытый ключ отсутствует, либо для исправления потребуется менять общие активы подписи. Не подменяйте администраторский доступ общей учётной записью.
Используйте изолированную среду macOS, если локальное состояние машины мешает воспроизведению, лаборатория временно не располагает Mac, а команда разрешает такой доступ. Сначала проверьте минимальный проект и не переносите закрытые ключи или исследовательские данные без согласования.
Организуйте отдельную проверку на целевом устройстве, если требуется подтвердить установку, работу датчика или фактическое поведение приложения. Архив и удалённая сборочная среда не дают такого подтверждения.
Границы удалённой проверки
Удалённый Mac подходит для повторяемой проверки цепочки сборки и архивирования в macOS, особенно если локальная связка ключей или установленная среда мешает получить воспроизводимый результат. Но такая проверка не подтверждает работу с физическим оборудованием, поведение приложения на каждом устройстве или наличие разрешений на исследование. В отчёте разделяйте результаты сборки, испытания на устройстве и проверки исследовательского процесса.
Частые вопросы
Почему Xcode просит выбрать команду разработчиков, хотя локальная сборка проходит?
Компиляция исходного кода и подпись для запуска на устройстве или распространения — разные этапы. Проверьте команду в настройках целевого объекта, учётную запись и доступ к ресурсам команды. Если нужная команда не отображается или прав недостаточно, попросите администратора проверить роль и членство. Не используйте общую учётную запись для обхода ограничения: это затруднит контроль доступа и диагностику изменений.
Что делать, если сертификат действителен, но профиль подготовки не подходит?
Проверьте соответствие профиля идентификатору приложения и сценарию, наличие нужного устройства и закрытого ключа связанного сертификата в связке ключей используемого Mac. При ручной подписи сопоставьте эти элементы явно. При автоматической сначала проверьте команду и настройки целевого объекта. Сохраните конфигурацию до обновления профиля и не удаляйте другие сертификаты без подтверждения.
Архив создан, но приложение нельзя загрузить или раздать тестировщикам. Что проверить?
Разделите экспорт, загрузку, обработку сборки и установку. Найдите журнал и сообщение ошибки именно для этапа, где остановилась доставка, затем проверьте назначение экспорта, подпись и доступ тестировщиков. Готовый архив подтверждает только прохождение архивирования; он не доказывает, что сборка обработана, доступна для раздачи или установится на целевом устройстве.
Как воспроизвести ошибку подписи Xcode, если в лаборатории нет Mac?
Зафиксируйте конфигурацию и журнал, не передавая закрытые ключи без разрешения. Затем соберите минимальный проект в изолированной среде macOS, к которой команда разрешила доступ. Это поможет отделить ошибку проекта от локального состояния компьютера. Для проверки установки, оборудования и исследовательского сценария всё равно потребуется отдельная приёмка на подходящем устройстве и с соблюдением процедур проекта.
Если диагностика показала, что нужна чистая среда macOS, а в лаборатории временно нет подходящего Mac, сравните удалённую проверку с покупкой устройства ради разового теста. Удалённая среда позволяет воспроизвести сборку и архивирование, но требует заранее согласовать доступ к ключам и данным; испытания на физическом оборудовании всё равно проводятся отдельно. Изучите условия и варианты аренды Mac. Если краткосрочная проверка подходит проекту, ознакомьтесь с оформлением заказа удалённого Mac и сначала подтвердите допустимый формат доступа с администратором.