Симптом: Unity экспортирует iOS-проект, но завершить сборку в нужной версии Xcode негде. Быстрое решение: если облачный сервис официально поддерживает ваши версии Unity и Xcode и нужен только артефакт, сначала проверьте облачную сборку; если требуется разбирать Xcode-проект, плагины или подпись, выбирайте удалённый Mac. Для Xcode 27 сначала подтвердите совместимость по текущему списку, а не по номеру версии.

Материал для вас, если вы выпускаете игру или приложение на Unity без собственного Mac и выбираете способ сборки. Он также пригодится, если в проекте есть нативные плагины, скрипты экспорта или особые требования к подписи. Для небольшой команды ниже разобраны границы ответственности за сборку и выпуск.

Последняя проверка: 10 октября 2026 года. Сверяйте статус Xcode и доступность версии в облаке перед запуском проекта: данные проверяются по списку Unity Build Automation и заметкам Apple о Xcode 27.1 Release Candidate.

Сначала проверьте доступность нужной версии Xcode

Сборка Unity для iOS в Xcode 27 — не одна операция. Unity сначала формирует Xcode-проект, затем Xcode использует этот проект для сборки приложения. Поэтому возможность экспортировать проект на Windows или Linux не означает, что там же получится выполнить окончательную сборку iOS. Unity описывает именно такую последовательность в документации процесса сборки и доставки для iOS.

На дату проверки в материалах Apple указана версия Xcode 27.1 Release Candidate. Это статус кандидата на выпуск, а не основание считать версию окончательно выпущенной или доступной для любой облачной конфигурации. Перед работой повторно проверьте релизные заметки Apple и список Xcode, которые доступны именно в Unity Build Automation. Если нужной версии там нет, не закладывайте её поддержку в план публикации.

Что проверить Облачная сборка Удалённый Mac Условие решения
Версия Xcode Должна присутствовать в актуальном списке поддерживаемых версий сервиса Можно проверить доступность и состояние установленной версии в среде Нет подтверждения облачной поддержки — тестируйте на удалённом Mac
Версия Unity Сопоставьте редакцию проекта с настройками сборочной среды Проверьте, что установленная среда соответствует проекту Не смешивайте проверку Unity с проверкой Xcode
Доступ к Xcode-проекту Управление идёт через поддерживаемый сценарий сервиса Вы можете открыть и изучать сгенерированные файлы Нужны ручные правки — важен прямой доступ
Подпись и доставка Проверьте настройки и ответственность сервиса за материалы подписи Контролируйте конфигурацию и диагностику в доступной среде Проверяйте конечный артефакт, а не только статус задачи

У облачного сервиса есть собственный перечень доступных Xcode. Откройте официальную таблицу Unity Build Automation и сверьте её непосредственно перед проверкой проекта: наличие iOS-сборки в описании сервиса не доказывает поддержку каждой редакции Xcode.

Сопоставьте контроль над проектом и рабочий процесс

Unity-проект может успешно экспортироваться, но требовать действий после экспорта. Это могут быть настройки проекта Xcode, добавление framework или обработка файлов скриптом. В описании структуры сгенерированного Xcode-проекта Unity показывает, какие части проекта создаются для дальнейшей сборки. Это помогает проверять не абстрактную «поддержку iOS», а конкретные изменения, которые нужны вашему приложению.

Критерий Unity Build Automation Удалённый Mac
Повторяемые сборки Подходит, если настройки и скрипты стабильно выполняются в заданном процессе Можно автоматизировать, но за конфигурацию и обслуживание отвечаете вы
Просмотр результата экспорта Доступ определяется возможностями сборочного процесса Можно открыть Xcode-проект и проверить конкретные файлы
Нативные плагины Нужно подтвердить, что их требования выполняются в сборочной конфигурации Удобнее исследовать ошибки и вручную проверить интеграцию
Диагностика Ориентируйтесь на доступные логи и настройки сервиса Можно воспроизводить этапы и взаимодействовать с инструментами macOS
Контроль подписи Проверьте, где хранятся материалы и кто управляет процессом Можно напрямую проверять конфигурацию, но безопасность доступа — ваша ответственность

В облаке меньше необходимости самостоятельно поддерживать отдельную машину для регулярных повторяемых сборок. Обратная сторона — часть процесса проходит в рамках настроек сервиса, а конкретные границы доступа к проекту и логам следует проверить заранее. На удалённом Mac контроль над окружением выше, но это не означает, что настройка подписи, обновление инструментов и диагностика исчезают: эти задачи переходят к вам.

Проверьте, что экспорт можно повторить

  1. Зафиксируйте версии Unity и Xcode, выбранные для теста. Сверьте Xcode с официальным списком сервиса, а не только с выпадающим меню или названием тарифа.
  2. Создайте отдельную ветку или копию проекта. Не начинайте проверку с единственной рабочей версии, если предстоят изменения скриптов экспорта.
  3. Запустите экспорт Xcode-проекта и сохраните его результат. Отдельно запишите, какие настройки должны меняться после генерации.
  4. Проверьте, где применяются эти изменения: в Unity до экспорта, скриптом после экспорта или вручную в Xcode. Не считайте ручную правку воспроизводимой, пока не автоматизировали её или не описали шаги.
  5. Выполните сборку и изучите логи при ошибке. Отметьте, на каком этапе она возникает: экспорт Unity, изменение проекта, сборка Xcode или подпись.
  6. Повторите запуск на том же исходном состоянии проекта. Если результат зависит от ручного вмешательства, облачный процесс пока не подтверждён как надёжный для вашего релиза.

Отделите ошибку Unity от ошибки постобработки

При сбое экспорта сначала добейтесь успешной сборки того же проекта в локально доступной совместимой среде или на удалённом Mac. Затем проверьте, не добавляет ли постобработка параметры, которые облачная сборка не применяет. Unity документирует запуск пользовательских скриптов в описании пользовательских сценариев сборки. Сравните скрипты проекта с поддерживаемым процессом, а не списывайте несовпадение сразу на сам движок.

Для диагностики полезно фиксировать исходный экспорт и изменённую версию отдельно. Если ошибка появляется лишь после добавления framework или выполнения скрипта, ищите расхождение в этих действиях. Если проект не собирается и без них, отдельно проверяйте выбранные версии и настройки Xcode. Такой разбор экономит время: он показывает, какой именно этап нужно переносить на удалённый Mac или переделывать для автоматического выполнения.

Проверьте плагины и постобработку до выбора среды

Наличие нативного iOS-плагина само по себе не означает, что облачная сборка невозможна. Решающее значение имеют его требования и то, можно ли воспроизводимо выполнить настройку проекта после экспорта. Проверьте, нужны ли плагину дополнительные Xcode framework, изменения настроек, собственный скрипт или ручные действия разработчика.

Для конфигурации Fastlane Unity отдельно описывает работу с параметрами iOS-сборки в руководстве по настройке Fastlane. Используйте его как источник по поддерживаемым настройкам, но не переносите выводы на любые собственные сценарии: проект может выполнять действия, которых нет в стандартной конфигурации.

В практическом случае у небольшой команды игра собиралась в Unity, но один плагин менял настройки экспортированного Xcode-проекта. Облачная сборка была разумным вариантом только после того, как команда проверила повторное применение этой настройки и получила тот же результат на тестовом проекте. Пока требовалось открывать файлы и выяснять, какое изменение ломает сборку, удалённый Mac давал более понятный путь диагностики.

Плюсы облачной сборки: удобнее повторять проверенный процесс; не нужно самостоятельно поддерживать выделенную сборочную машину; можно отделить регулярную генерацию артефактов от ручной разработки.

Ограничения облачной сборки: приходится учитывать доступность конкретных версий и границы платформы; нестандартные изменения требуют проверки; доступ к среде диагностики может отличаться от локального интерактивного процесса.

Плюсы удалённого Mac: можно открыть Xcode-проект, исследовать конфигурацию, проверять скрипты и работать с инструментами macOS непосредственно.

Ограничения удалённого Mac: окружение нужно настраивать и поддерживать; постоянная работа требует ответственности за доступ, обновления и материалы подписи; интерактивность не заменяет автоматизацию повторяющихся действий.

Разделите подпись, установку и публикацию

Проверка подписи не заканчивается сообщением «сборка завершена» или скачиванием файла. Для приёмки отдельно установите, что проект собрался, приложение подписано, его можно установить на целевое устройство, а затем оно готово к дальнейшей доставке. Это разные проверки; прохождение одной не доказывает прохождение остальных.

В инструкции Unity по подписи приложения iOS проверьте требования к настройке подписания. Сопоставьте Bundle ID приложения, сертификат и provisioning profile. Назначение этих материалов должно соответствовать вашему сценарию распространения. Не передавайте проекту лишние секреты и не оставляйте контроль над публикационными учётными данными вне владельца приложения.

Для тестовой установки сверяйте способ распространения и регистрацию устройства. Apple описывает условия доставки на зарегистрированные устройства в документации по распространению приложений на такие устройства. Если сборка не устанавливается, зафиксируйте сообщение об ошибке и проверьте конфигурацию профиля, устройства и Bundle ID. Успешная загрузка артефакта из облака не заменяет этот тест.

Перед публикацией используйте обезличенный тестовый проект или безопасную копию конфигурации. Не публикуйте сертификаты, пароли и закрытые ключи в логах или репозитории. Проверьте, кто может запускать сборку, получать её результат и менять настройки подписи. Если приложение собирается для команды, владелец проекта должен понимать, где хранятся материалы и как отозвать доступ.

Разберите сбои интерактивно, когда это необходимо

Автоматизация полезна, когда вы регулярно запускаете один и тот же понятный процесс. Но если нужно часто менять нативный код, проверять сгенерированные настройки или исследовать поведение плагина, одного результата сборки недостаточно. Удалённый Mac даёт возможность вручную пройти проблемный участок и сопоставить изменения в Xcode-проекте с поведением приложения.

После сборки проверьте установку приложения на реальном целевом устройстве и выполните нужный проекту сценарий. Если возникают ошибки уже во время запуска, соберите журналы и отделите проблему сборки от проблемы выполнения. Важно заранее определить, кто проводит такую проверку и каким способом получает устройство. Удалённый Mac сам по себе не означает, что у вас автоматически есть удалённый доступ к физическому iPhone или возможность проверить на нём приложение.

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

Ответы перед выбором среды

Unity может собрать проект без Mac, но что требуется для выпуска?

Экспорт Xcode-проекта и окончательная сборка — не одно и то же. Если у вас нет Mac, проверьте официальный процесс облачной сборки и совместимость версий; затем отдельно подтвердите подпись, установку на целевое устройство и готовность артефакта к доставке. Если облачный путь не поддерживает нужный Xcode, понадобится доступ к macOS для завершающего этапа.

Как поступить, если Xcode 27 отсутствует в списке облачной сборки?

Не подменяйте отсутствие подтверждения предположением о совместимости. Проверьте текущую таблицу поддерживаемых версий, затем повторите проверку перед выпуском: перечень может измениться. Пока нужная версия там не указана, используйте удалённый Mac с подходящим Xcode для пробной сборки. После появления официального подтверждения запустите отдельную проверку облачного процесса на копии проекта.

Как оценить нативный плагин до переноса всего проекта?

Изучите требования плагина к Xcode-проекту, framework и скриптам после экспорта. Затем проверьте минимальный проект или копию приложения, в которой плагин включён и его настройки применяются тем же способом, что и в релизной конфигурации. Если облачный процесс повторяет эти шаги, он остаётся кандидатом. Если вам приходится вручную искать причину сбоя в файлах Xcode, начните с удалённого Mac.

Что считать подтверждением корректной подписи?

Успешное завершение сборки подтверждает только результат конкретного этапа. Сверьте Bundle ID, сертификат и профиль, проверьте целевое устройство и установите именно полученный артефакт. Не называйте его готовым к публикации, если установка и дальнейшая доставка ещё не проверены. За доступ к материалам подписи и окончательное решение о выпуске должен отвечать владелец проекта.

Выберите распределение работ по результатам проверки

Результат проверки проекта Основной путь Резервный шаг
Нужные версии Unity и Xcode есть в облачном списке; экспорт и скрипты повторяются; требуется получать артефакт Облачная сборка как основной процесс При сбое сохранить логи и воспроизвести этап на удалённом Mac
Xcode 27 не подтверждён в перечне или облако не позволяет проверить нужный этап проекта Удалённый Mac как основная среда проверки Повторно оценить облачный путь после обновления официального списка
Облачная сборка успешно создаёт артефакт, но плагины, подпись или диагностика требуют ручной проверки Разделить задачи: облако для повторяемых сборок, удалённый Mac для проверки и устранения ошибок Не передавать публикацию в автоматический процесс, пока не подтверждены подпись и установка

При сравнении учитывайте не только прямую оплату, но и работу, которая нужна для поддержки процесса: обновление среды, исправление скриптов, диагностика, ожидание результата, контроль доступа и повторная проверка подписи. Не существует универсального ответа, сколько будет стоить конкретный процесс или как быстро он соберёт ваш проект: это зависит от конфигурации, проекта и выбранного сервиса. Сравните расходы и обязанности по собственному графику сборок, а не по обещаниям, не проверенным на вашей конфигурации.

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

Для короткой проверки или периода активной диагностики удалённый Mac может оказаться практичнее покупки отдельного компьютера, особенно если вам нужна именно интерактивная среда macOS. Если вы хотите оценить этот путь для своего Unity-проекта, изучите варианты удалённого Mac для разработчика и сопоставьте требуемые задачи с длительностью использования. А если вам нужна среда для повторных проверок Xcode-проекта, плагинов и подписи, посмотрите условия заказа удалённого Mac. Перед передачей проекта проверьте доступы и не размещайте секреты подписи в открытых логах.