reckfellENGINE

Сборка исходников и .app для macOS

Apple SDK, архитектуры, C#-стадии и упаковка bundle.

На этой странице

Здесь описана сборка исходников Reckfell 1.0.0 для macOS. Для упаковки готовой игры используйте экспорт macOS. Компиляция и создание .app ниже сверены по исходникам, но не выполнялись на этом Windows-хосте.

Выберите Apple toolchain

Нужны Apple toolchain и macOS SDK, Python 3.9+, SCons 4.4+ и .NET SDK 10 для C#. В терминале сборки проверьте:

Командная строка
xcode-select --print-path
xcrun --sdk macosx --show-sdk-path
clang --version

Отсутствующий/неверный активный developer directory настройте по инструкции Apple. Сборка ищет SDK через xcrun, если MACOS_SDK_PATH не задан явно. Один каталог Mac SDK не предоставляет все compiler/framework-зависимости. Кросс-компиляция требует отдельного toolchain, а не одного platform=macos на другой OS.

Текущие исходники принимают arm64 и x86_64. Минимальная deployment-версия задаётся как macOS 13.0 для arm64 и 11.0 для x86_64. Это флаги сборки, не полная сертификация оборудования/возможностей. Metal в этих исходниках включён только для arm64; ветвь x86_64 отключает его с предупреждением. Объединённый бинарник не доказывает одинаковый набор рендереров.

Проверьте зависимости рендереров и дополнительных возможностей

ОпцияСледствие
vulkan=yes, use_volk=noНужен совместимый MoltenVK; при ошибке обнаружения задайте vulkan_sdk_path
metal=yesНужны выбранные Apple SDK/frameworks и поддерживаемая архитектура
angle=yesНужны подходящие ANGLE-библиотеки через angle_libs; отсутствие может отключить backend с предупреждением
accesskit=yesНужен AccessKit C SDK через accesskit_sdk_path; отсутствие может отключить поддержку доступности

Читайте полный журнал конфигурации: успешная сборка всё ещё может иметь отключённый backend. angle=no/accesskit=no используйте только как осознанное изменение возможностей. Архитектура зависимостей должна соответствовать результату.

Соберите и подготовьте C#

Запускайте из Source с SConstruct. Пример редактора Apple Silicon:

Командная строка
scons platform=macos target=editor arch=arm64 module_mono_enabled=yes -j4

Для Intel используйте arch=x86_64 и соответствующие зависимости. Остальные опции, включая dev_build и precision, влияют на имена/конфигурацию. Результаты находятся в Source/bin. Старый файл, оставшийся после ошибки компиляции/линковки, не подтверждает успех: проверьте exit status и время результата.

C#-модуль по умолчанию выключен. Native-компиляция с module_mono_enabled=yes — одна стадия: сгенерируйте glue новым редактором и соберите соответствующие managed API/packages с .NET SDK 10. RECKFELL_BINARY должен указывать на реальный новый результат; скорректируйте имя примера под свою конфигурацию:

Командная строка
RECKFELL_BINARY="/absolute/Source/bin/reckfell.macos.editor.arm64.mono"
"$RECKFELL_BINARY" --headless --generate-mono-glue modules/mono/glue
python3 modules/mono/build_scripts/build_assemblies.py --reckfell-output-dir=bin --push-nupkgs-local=bin/NuGet
"$RECKFELL_BINARY" --path /absolute/project --editor

Проверьте bin/ReckfellSharp и bin/NuGet для SDK 1.0.0. Native/managed-возможности должны совпадать. project.reckfell должен лежать в каталоге --path. --headless — режим запуска, не доказательство отсутствия зависимостей или проверки GPU.

Создайте bundle последним

Для .app C#-редактора сначала подготовьте managed-результат, затем выполняйте финальный проход generate_bundle=yes: упаковщик копирует bin/ReckfellSharp, но сам этот каталог не собирает. Используйте согласованные SCons-опции:

Командная строка
scons platform=macos target=editor arch=arm64 module_mono_enabled=yes generate_bundle=yes -j4

Результат находится в bin; имя .app зависит от префикса/суффиксов сборки. Проверьте Contents/MacOS/Reckfell и для C# — Contents/Resources/ReckfellSharp. Упаковщик использует исходный шаблон misc/dist/macos_tools.app и текущие entitlements из misc/dist/macos. Не копируйте устаревшие пути из другого checkout.

Для Intel и Apple Silicon сначала соберите обе архитектуры с согласованными настройками, затем запускайте финальную упаковку. Помощник lipo объединяет реально найденные бинарники, а не создаёт отсутствующую архитектуру. Проверьте архитектуры результата вместо вывода о universal-сборке по имени файла.

bundle_sign_identity по умолчанию равен '-' для локальной ad-hoc подписи. Это не Developer ID distribution/notarization. Помощник вызывает codesign без обязательной проверки его return code: завершение SCons само по себе не доказывает успех подписи. Просмотрите вывод codesign и проверьте готовый bundle перед использованием. Проверка распространения и подпись в этом проходе не выполнялись.

Для игровых шаблонов используйте target=template_debug/template_release с согласованными C#/архитектурой/опциями. generate_bundle упаковывает доступные результаты, но не компилирует все отсутствующие варианты. Проверяйте экспортированную игру на каждой поддерживаемой целевой OS.

Диагностика и ограничения

ОшибкаЧто проверить
xcrun не находит SDKАктивный developer directory и MACOS_SDK_PATH
Нет MoltenVK/ANGLE/AccessKitВыбранный backend, SDK path и архитектуру
Ошибка копирования C# в bundleПодходящий bin/ReckfellSharp существует до упаковки
.app есть, но не запускаетсяРеальный executable, managed-файлы, динамические зависимости и подпись
Нет одной архитектурыОба native-результата и одинаковую конфигурацию упаковки

Опции исходников, managed-стадии и поведение упаковщика сверены. Компиляция macOS, установка зависимостей, реальная многоархитектурная линковка, запуск, графика, подпись и экспорт не проверены. Source, установленный Runtime и SDK не менялись.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.