reckfellENGINE

Экспорт проекта для iOS

Проект Xcode, пакет IPA, подпись, устройство и экспериментальный C# AOT.

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

Выберите результат экспорта

ЗадачаРезультат
Собрать и запустить игру из XcodeВключите application/export_project_only: экспорт создаёт .xcodeproj и связанные файлы. Сборку и подпись проверяете в Xcode.
Получить архив и пакет через экспортёрВыключите application/export_project_only: на macOS экспортёр после генерации вызывает xcodebuild archive, затем -exportArchive для .ipa. Это требует настроенной подписи.

Значение application/export_project_only по умолчанию — false. Для первого запуска удобнее начать с проекта Xcode, чтобы видеть ошибки сборки и подписи раздельно. Наличие .xcodeproj не означает готовый .ipa, а готовый .ipa не означает принятие в App Store.

Что подготовить

  • Mac с полной установкой Xcode, нужным iOS SDK и установленной поддержкой целевого устройства. Откройте Xcode и завершите его первоначальную настройку. Одних Command Line Tools недостаточно для iPhoneOS SDK.
  • Шаблоны вашей сборки Reckfell 1.0.0: экспортёр ищет ios.zip. Для собственных шаблонов предусмотрены custom_template/debug и custom_template/release. Версия, модули и .NET-вариант должны соответствовать проекту; архив редактора не заменяет архив шаблонов.
  • Apple Account и Team для подписи. Для тестирования на своём устройстве и распространения действуют разные условия Apple; выбор Team не даёт права на любой способ доставки. Запуск через Xcode.
  • Проект, который запускается в редакторе. Для C# сначала устраните ошибки обычной сборки; затем отдельно проверьте мобильную AOT-публикацию.

Для описанного полного маршрута используйте macOS. В текущем .NET-редакторе экспорт на Apple Embedded с другого хоста отклоняется проверкой конфигурации. Вариант редактора без .NET может оставить только проект Xcode с предупреждением вместо .ipa; это не сборка приложения на Windows/Linux.

Настройте пресет iOS

  1. Добавьте iOS в окне экспорта проекта.
  2. Укажите application/app_store_team_id: Team ID, а не отображаемое имя разработчика. Поле требуется даже при экспорте только проекта. Задайте стабильный application/bundle_identifier, например com.yourstudio.yourgame, соответствующий настройкам подписи.
  3. Проверьте application/targeted_device_family: iPhone, iPad либо оба. application/min_ios_version по умолчанию — 15.0; итоговые требования зависят также от SDK, рендера и библиотек. Число в пресете не доказывает запуск на этой версии iOS.
  4. Для первого запуска включите application/export_project_only. Создайте отдельный каталог вывода вне проекта и экспортируйте под простым именем, например Game. Не смешивайте результат с исходным проектом и ручными файлами Xcode: повторный экспорт очищает части предыдущего результата.
  5. Откройте Game.xcodeproj, сохранив рядом созданные .pck, каталоги приложения и XCFramework. Не переносите один .xcodeproj без его зависимостей.

На Mac проверьте выбранный Xcode и доступность SDK:

Командная строка
xcode-select -p
xcrun --sdk iphoneos --show-sdk-path
xcrun --sdk iphonesimulator --show-sdk-path

Если путь указывает на /Library/Developer/CommandLineTools, выберите полную установку Xcode в его настройке Command Line Tools и повторите проверку. Успешный вывод этих команд ещё не проверяет подпись, шаблоны или C#.

Запустите на устройстве

В Xcode выберите схему приложения и подключённое устройство. В Signing & Capabilities назначьте нужную Team и проверьте Bundle Identifier. Если используете автоматическую подпись Xcode, разрешите ему подготовить необходимые signing assets. Затем выполните Product > Run. При запросе устройства включите Developer Mode по инструкции Apple.

Проверьте главный уровень, сенсорный ввод, звук, паузу/возврат из фона и сохранения в user://. Для камеры и микрофона укажите осмысленные privacy/camera_usage_description и privacy/microphone_usage_description; разрешение ОС не заменяет включение нужного модуля. Для сторонних SDK проверьте их разрешения, privacy manifest и нативные зависимости отдельно.

Device и Simulator — разные платформы даже при одинаковом arm64. Нужны соответствующие варианты XCFramework. В текущих исходниках сборка iOS Simulator отключает Metal и Vulkan; для неё предусмотрен Compatibility/OpenGL-путь при наличии такого шаблона. Запуск в симуляторе не подтверждает рендер, производительность или функции реального устройства. Не считайте возможность запуска iOS-приложений на Apple silicon универсальным обходом этих требований.

C#: отдельная проверка AOT

Поддержка iOS в текущем .NET-экспортёре помечена экспериментальной. SDK включает PublishAot, PublishAotUsingRuntimePack и UseNativeAOTRuntime. Экспортный плагин публикует вариант устройства и варианты симулятора, затем формирует <assembly>_aot.xcframework. Это отличается от запуска C# в настольном редакторе.

Проверьте зависимости NuGet и расширения на AOT/trimming и поддержку iOS. Динамическую генерацию кода нельзя считать доступной как в desktop JIT. Ошибки dotnet publish, Failed to 'lipo' simulator binaries и Failed to generate xcframework разбирайте до подписи: смена Team не исправит отсутствующую библиотеку или ошибку AOT.

Режим «только проект» не пропускает генерацию C#-зависимостей. Сохраняйте необходимые publish-файлы; создание .xcodeproj не делает их необязательными.

Релиз и повторный экспорт

После проверки устройства сделайте отдельный release-экспорт с выключенным Export With Debug. Для встроенного архивирования сверяйте debug/release настройки: application/export_method_debug по умолчанию Development, application/export_method_release — App Store. Профили и identity должны соответствовать выбранному способу и Bundle Identifier. Не кладите реальные signing credentials в примеры или репозиторий.

В журнале встроенной сборки различайте ARCHIVE SUCCEEDED и EXPORT SUCCEEDED. Проверяйте фактический свежий .xcarchive/.ipa, дату результата и весь журнал: один старый файл или итоговый код процесса не доказывает успех каждой стадии. Публикация/TestFlight выполняются через отдельный процесс распространения Apple.

Изменения игровых ресурсов требуют повторного экспорта. Сохраните нужные ручные изменения Xcode отдельно: генерируемые каталоги не являются постоянным местом для исходников. Интеграция нативных плагинов описана в плагинах iOS, сборка шаблонов — в сборке для iOS.

Граница проверки: инструкция сверена с экспортёром, iOS-конфигурацией, C#-плагином и SDK Reckfell 1.0.0. На текущем Windows-хосте не выполнялись iOS-export, AOT для iOS, Xcode, подпись, установка или рендер на устройстве/симуляторе. Эти действия остаются проверками вашей сборки.

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

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

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

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