Сборка шаблонов visionOS
SDK, Swift, шаблоны устройства и ограничения симулятора.
Руководство описывает сборку нативных шаблонов экспорта visionOS для Reckfell Engine 1.0.0. Результат — не настольный редактор и не готовая игра. Для упаковки проекта см. Экспорт для visionOS.
Подготовка
Выполняйте команды из каталога Source с файлом SConstruct. Нужны Python 3.9 или новее и SCons 4.4 или новее. На macOS выберите полную установку Xcode с SDK visionOS и инструментами Swift; одних Command Line Tools недостаточно.
Текущие исходники задают цель xros26.0 для устройства и xros26.0-simulator для симулятора. Сборщик Swift использует языковой режим 6 и взаимодействие с C++. Инструменты должны поддерживать эти цели: копировать SDK и минимальную версию iOS нельзя. SDK описан в примечаниях Apple к visionOS 26; требования выбранной версии Xcode проверьте отдельно.
Перед сборкой проверьте выбранные инструменты:
xcode-select -p
xcrun --sdk xros --show-sdk-path
xcrun --sdk xrsimulator --show-sdk-path
xcrun swiftc --versionПервая команда должна указывать на нужный каталог разработчика Xcode, следующие две — на существующие каталоги SDK. Эти проверки находят инструменты, но не подтверждают успешную сборку.
Шаблоны для устройства
Соберите обе конфигурации для устройства arm64:
scons platform=visionos target=template_debug arch=arm64 simulator=no
scons platform=visionos target=template_release arch=arm64 simulator=no generate_bundle=yesНативная сборка объединяет объектные файлы движка в статические библиотеки в Source/bin. Имена начинаются с libreckfell.visionos.template_debug или libreckfell.visionos.template_release. Это не исполняемый редактор и не подписанное приложение.
Вторая команда также упаковывает существующие библиотеки по шаблону misc/dist/apple_embedded_xcode. При стандартных суффиксах архив называется bin/reckfell_visionos.zip. Каталоги внутри frameworks различают xros-arm64 и xros-arm64-simulator. Упаковщик копирует доступные конфигурации: недостающие он не собирает и полноту набора библиотек не подтверждает. Проверьте библиотеки внутри frameworks перед использованием архива при экспорте.
Упаковщик пересоздаёт, а затем удаляет bin/visionos_xcode. Не храните в этом временном каталоге свои файлы. Подпись, provisioning и экспорт приложения выполняются отдельно.
Ограничения симулятора
В исходниках есть параметр simulator=yes: он выбирает SDK xrsimulator и добавляет .simulator к именам библиотек. Это не подтверждает работоспособность рендеринга: текущая конфигурация отключает Metal в симуляторе, а Vulkan и OpenGL отключены для visionOS вообще. Переход на Compatibility поэтому не решает проблему в этой конфигурации.
Проверяйте графику на устройстве arm64. Успешная сборка, запуск и рендеринг в симуляторе этим руководством не подтверждены. Валидатор архитектур также перечисляет x86_64, но одного списка недостаточно для подтверждения сочетания устройства или симулятора и архитектуры; команды выше используют arm64.
Свои инструменты сборки и C#
APPLE_TOOLCHAIN_PATH задаёт корень toolchain, APPLE_SDK_PATH — каталог SDK, SWIFT_COMPILER — конкретный исполняемый файл swiftc. apple_target_triple — префикс имени исполняемого компилятора, а не замена цели Swift: инструменты ищутся как $APPLE_TOOLCHAIN_PATH/usr/bin/${apple_target_triple}clang и соответствующие имена clang++, ar и ranlib.
Наличие переменной OSXCROSS_VISIONOS включает ветку кросс-компиляции даже при пустом значении. В ней обязателен явный SWIFT_COMPILER: автоматического выбора Swift нет. Включение ветки не устанавливает инструменты и не подтверждает полный процесс сборки на Linux или Windows.
Приведённые нативные команды не включают C#. Параметр module_mono_enabled=yes включает модуль, но сам по себе не создаёт и не проверяет managed-сборки, AOT-компиляцию и рабочий экспорт C# на visionOS.
Диагностика по этапам
| Симптом | Что проверить |
|---|---|
| Не найден SDK | Выбранный Xcode, установленные компоненты visionOS и APPLE_SDK_PATH: xros для устройства, xrsimulator для симулятора. |
| При кросс-компиляции не найден Swift | Явный SWIFT_COMPILER, поддержку языкового режима Swift 6 и соответствующий SDK. |
| Нет заголовка Swift-to-ObjC | Предыдущие ошибки сборки Swift. SCsub создаёт заголовок как зависимость; пустой файл вместо него не исправляет сборку. |
| В симуляторе нет драйвера рендеринга | Ограничения выше; успешная сборка библиотеки их не устраняет. |
| В ZIP отсутствует конфигурация | Соберите недостающую цель с теми же параметрами архитектуры, точности и модулей, затем повторите упаковку. |
| Ошибка подписи или установки на устройство | Проверяйте экспортированное приложение Xcode и provisioning отдельно от сборки статической библиотеки. |
Руководство сверено с исходниками, включая изолированные проверки конфигурации с имитацией окружения сборки. При этой проверке не запускались компилятор visionOS, сборка шаблонов, подпись, устройство, симулятор или графические тесты.