Сначала определите, где именно остановился Xcode 27: при сборке, подписании, экспорте, нотариальной проверке или запуске на целевом Mac. Затем проверьте команду разработчиков, сертификат, настройки распространения и сам передаваемый файл — не меняйте их все одновременно. Если приложению действительно нужна macOS-сборка, а в лаборатории нет Mac, оцените удалённую среду; успешная подпись ещё не означает, что приложение принято для научной работы.
Кому пригодится этот разбор:
- Исследователям, которым нужно собрать и подписать научное приложение в Xcode 27 без локального Mac.
- Разработчикам, отвечающим за тестовую и дистрибуционную подпись, а также нотариальную проверку.
- Техническим сотрудникам вузов, которые управляют доступом к учётной записи разработчиков и проверяют передачу сборок.
Последняя проверка: 31 октября 2026 года. Версию Xcode и актуальность процедур сверяйте с официальными выпусками Apple и действующими документами Apple для разработчиков.
01План диагностики на эту неделю: сначала локализуйте сбой
Не начинайте с удаления сертификатов или перенастройки всего проекта. Сначала сохраните состояние, которое можно сравнить с результатом после исправления. Для первого прохода хватит минимального воспроизводимого проекта или копии рабочего проекта без исследовательских данных и секретов.
| Этап работы | Что сделать | Что должно остаться для проверки |
|---|---|---|
| Первая сессия | Повторить сбой на копии проекта и записать этап, полный текст сообщения и выбранный способ распространения | Лог сборки или экспорта, параметры запуска и название схемы |
| После локализации | Изменить только параметр, связанный с найденной причиной, и повторить ту же операцию | Сравнение результата до и после изменения |
| Перед передачей | Проверить неизменённую копию итогового файла на целевом Mac или в согласованном окружении лаборатории | Артефакт, журнал проверки и отметка о версии приложения |
В журнале укажите, возникла ли ошибка до создания архива, во время подписания, при экспорте, при отправке на нотариальную проверку или уже при открытии приложения. Эти состояния требуют разных действий. Например, исправление прав в учётной записи не устранит ошибку повреждённого вложенного компонента; повторная отправка на нотариальную проверку не исправит неверно выбранный сертификат.
Зафиксируйте также, на какой машине и в какой версии среды произошёл сбой. Системные требования Xcode меняются, поэтому возможность открыть проект ещё не доказывает, что среда подходит для нужной сборки. Сверяйте требования установленного выпуска с официальной страницей системных требований Xcode, а не с настройками чужого проекта.
02Когда Xcode не видит команду или пригодную подпись
Если ошибка появляется до архивации или в процессе подписи, первым делом выясните, какую команду разработчиков выбрал проект и доступна ли она пользователю, который запускает сборку. Участие в вузовской лаборатории не означает автоматически, что у каждого участника есть одинаковые полномочия. Права определяет владелец или администратор аккаунта, а доступы могут быть ограничены внутренними правилами учреждения. Сопоставьте роль пользователя с описанием ролей Apple Developer; не предполагайте, что нужные права есть у вас по умолчанию.
Затем проверьте, какую именно подпись ожидает текущая операция. Подпись для внутренней разработки, распространение через Mac App Store и прямое распространение — разные задачи. Для распространения вне магазина обычно рассматривают Developer ID, но наличие такого сертификата не делает его автоматически подходящим для выбранной команды и проекта. Назначение сертификата и порядок его получения описаны в документации Apple по сертификатам Developer ID.
Проверяйте по порядку:
- Выбрана ли правильная команда в настройках проекта.
- Видит ли система сертификат и связанную с ним закрытую часть в связке ключей на машине, где выполняется сборка.
- Совпадают ли команда и сертификат, выбранные в проекте.
- Не истёк ли сертификат и не отозван ли он.
- Не используется ли устаревшая ручная настройка подписи вместе с автоматической конфигурацией, которая выбирает другую идентичность.
Если сертификат отсутствует на удалённой машине, не передавайте его закрытый ключ через общий чат, публичное хранилище или общий аккаунт. Попросите администратора определить безопасный способ выдачи доступа и проверить, разрешает ли это политика лаборатории. Удалённый доступ к рабочему столу не отменяет требований к хранению и использованию учётных данных.
03Не создавайте новый сертификат только потому, что Xcode показал ошибку подписи. Сначала проверьте, нет ли уже пригодного сертификата у ответственного администратора: лишние идентичности усложняют аудит и могут привести к сборке не той командой.
Архив готов, но экспорт не проходит
Успешная архивация подтверждает, что проект дошёл до определённой точки сборки, но не гарантирует, что его можно экспортировать выбранным способом. На этом этапе сверьте тип распространения, идентификатор приложения, настройки подписи и сообщения мастера экспорта. Для Mac App Store и распространения с Developer ID действуют разные маршруты. В руководстве Apple по подписанию и распространению кода для Mac описаны соответствующие этапы; используйте инструкции для фактического канала, а не похожего по названию профиля.
Особенно внимательно проверьте provisioning profile и entitlements. Не каждое приложение, распространяемое через Developer ID, требует одного и того же профиля: потребность зависит от выбранного маршрута, возможностей и конфигурации проекта. Профиль, когда он необходим, должен соответствовать идентификатору приложения и нужным правам. Если приложение использует дополнительные возможности, проверьте, включены ли они для идентификатора приложения и отражены ли в конфигурации. Условия настройки возможностей приведены в документации Apple по App Capabilities, а ограничения для управляемых возможностей — в отдельном справочнике Apple.
| Сценарий | Что сопоставить | Чего не следует делать |
|---|---|---|
| Разработка и проверка проекта | Команду, выбранную идентичность подписи и требования текущей схемы | Считать эту подпись готовой для внешней передачи |
| Экспорт для Mac App Store | Канал распространения, параметры экспорта, идентификатор приложения и профиль, если он нужен | Подставлять настройки Developer ID без проверки |
| Прямая передача приложения | Наличие подходящей подписи Developer ID, целостность пакета и требования к нотариальной проверке | Считать успешную архивацию доказательством готовности установочного файла |
| Приложение с дополнительными возможностями | Entitlements, включённые возможности и соответствие требованиям аккаунта | Добавлять права в файл вручную, не сверяясь с конфигурацией команды |
При отказе экспорта откройте конкретное сообщение Xcode и найдите названный объект: профиль, entitlement, команду или идентификатор. Исправьте только найденное несоответствие, повторите экспорт и проверьте, что итоговый файл получен именно из актуального архива. Если проект использует управляемые возможности, которые администратор аккаунта не может включить самостоятельно, остановитесь и согласуйте конфигурацию с владельцем аккаунта. Не пытайтесь обходить ограничения правами другой команды.
04Нотариальная проверка: используйте журнал, а не догадки
Нотариальная проверка macOS — отдельный этап распространения, а не синоним подписи и не App Review. Она также не является подтверждением научной корректности, соблюдения правил исследования или безопасности данных. Для прямого распространения за пределами магазина Apple описывает процесс нотариальной проверки отдельно: сверяйте его с руководством по notarization macOS software.
При ошибке сохраните журнал загрузки и запись проверки. Найдите точную причину отказа: проблема могла возникнуть при отправке, чтении пакета или проверке подписи. Затем сопоставьте сообщение с настройками Hardened Runtime, целостностью подписи и составом отправленного файла. Официальный список типичных проблем нотариальной проверки полезен для проверки конкретных ошибок. Если вы используете собственную автоматизацию отправки, сверяйте её с действующими вариантами рабочего процесса Apple.
После исправления соберите или экспортируйте новый артефакт и повторите проверку. Не переименовывайте старую сборку и не считайте её исправленной: важно понимать, какой именно файл был отправлен и какой результат он получил. Для лабораторной передачи сохраните итоговый файл отдельно от временных архивов и запишите его происхождение — схема сборки, команда, версия проекта и результат проверки. Это помогает избежать ситуации, когда исследователь получает предыдущий пакет, хотя команда уже устранила ошибку.
05На целевом Mac приложение не открывается
Если проект собрался и прошёл подпись, но приложение не запускается у получателя, проверяйте именно переданный артефакт. Сбой может быть связан с изменением пакета после подписи, обработкой вложенного кода, неверной упаковкой или поведением Gatekeeper на целевой системе. Сборка на компьютере разработчика и успешный запуск у конечного пользователя — разные результаты.
Перед повторной проверкой:
- Возьмите копию файла из канала, которым он действительно передаётся исследователю, а не из каталога сборки.
- Убедитесь, что после подписи пакет не распаковывали, не перепаковывали и не изменяли скриптом.
- Проверьте вложенные компоненты и плагины, если они входят в приложение.
- Сохраните сообщение целевого Mac и сопоставьте его с логом подписи и результатом нотариальной проверки.
- После исправления проверьте чистую копию итогового пакета на целевой системе.
Не советуйте лаборатории отключать Gatekeeper или ослаблять системную защиту ради обхода ошибки. Такой шаг скрывает причину и делает результат проверки непригодным для обычного сценария доставки. Для внешнего распространения назначение Developer ID и связь с проверками Gatekeeper разъясняются в документации Apple Developer ID.
06Если в лаборатории нет Mac: оцените удалённую сборку по критериям
Удалённая среда имеет смысл, если вашему проекту действительно необходимы macOS и Xcode, а локального компьютера с подходящими возможностями нет. Она не заменяет согласование доступа к аккаунту, не меняет политику университета и сама по себе не доказывает, что приложение работает на компьютере коллеги. До начала работ проверьте совместимость версии Xcode и macOS, выбранный маршрут распространения, возможность безопасно получить нужную подпись и способ забрать файл для независимой проверки.
Для группы заранее установите порядок:
- Выдавайте доступ к учётной записи только тем людям, которым он нужен для конкретной задачи; роли и ограничения согласуйте с администратором.
- Для сборки используйте копию проекта и не помещайте туда секреты или исследовательские данные, которые не нужны задаче.
- Запишите среду, параметры экспорта, сообщение об ошибке и итоговый статус нотариальной проверки.
- Храните сертификаты и закрытые ключи в согласованном с учреждением порядке; не передавайте их между участниками как обычные файлы.
- Передайте итоговую копию приложения на целевой Mac и проведите там отдельную проверку открытия и нужного сценария работы.
До аренды проверьте доступные сведения о среде и условиях доступа, а также правила обработки проекта. В политике конфиденциальности VpsMesh стоит проверить, какие условия применимы к вашим данным и процессу работы. Сопоставьте их с требованиями научной группы и университета: если правила учреждения запрещают размещать исходники или данные вне одобренной инфраструктуры, удалённая сборка не становится допустимой только из-за технической доступности.
07FAQ: частые вопросы о подписи и передаче
При ошибке подписи Xcode сначала проверять учётную запись или сертификат?
Сначала сохраните полный текст ошибки и определите этап, затем проверьте выбранную команду разработчиков и доступ к ней. Если Xcode не видит пригодную подпись, сопоставьте сертификат с командой и проверьте его состояние в связке ключей. Не создавайте новый сертификат и не меняйте права, пока не выяснили, чего именно не хватает.
Что проверить, если архив научного приложения создаётся, но экспорт завершается ошибкой?
Сверьте способ распространения, идентификатор приложения и параметры экспорта. Затем выясните, нужен ли проекту профиль подготовки для его возможностей и совпадают ли entitlements с настройками идентификатора. Mac App Store и распространение через Developer ID — разные маршруты; не переносите настройки одного в другой без проверки сообщения Xcode.
Какие записи помогают разобраться с ошибкой нотариальной проверки macOS?
Сохраните результат отправки, журнал загрузки и запись проверки с конкретным сообщением. Сопоставьте их с целостностью подписи, Hardened Runtime и составом пакета. Исправьте указанную причину и отправьте новый артефакт. Успешная нотариальная проверка не заменяет приёмку научного приложения и не подтверждает корректность результатов исследования.
Можно ли выполнить подпись и приёмку Xcode через удалённый Mac без локального компьютера?
Да, если удалённая среда совместима с нужными macOS и Xcode, а доступ к команде разработчиков можно получить безопасно и по правилам учреждения. До начала проверьте, как скачать результат и испытать его на целевом Mac. Подпись на удалённом узле не подтверждает автоматически работу приложения в лаборатории или корректность научного процесса.
Если вы уже подтвердили, что проект требует сборки в macOS/Xcode, а доступного Mac в лаборатории нет, сравните удалённую среду с текущим порядком работы: сборка на неподходящей системе может не воспроизвести нужный процесс; передача сертификатов между сотрудниками повышает риск потери контроля; отсутствие целевой проверки оставляет ошибку доставки незамеченной. Удалённый Mac удобен тем, что даёт доступ к реальной macOS без покупки отдельного компьютера, но подходит только при согласованных правах, проверенной совместимости и возможности проверить артефакт у получателя. Если нужен временный доступ для сборки и приёмки, посмотрите условия аренды Mac в VpsMesh и заранее уточните, подходит ли среда вашему проекту. Для постоянной тяжёлой нагрузки или работы с обязательными физическими интерфейсами практичнее может оказаться собственный Mac.