Руководство

Как экспортировать игру на Godot под iOS без своего Mac

Экспорт Godot под iOS превращает игру в проект Xcode. Потом Xcode собирает, подписывает и загружает приложение, а Xcode работает только на macOS. Мы прогнали всю цепочку на GitHub Actions 19 октября 2026 года с Godot 4.7.2. Шаг экспорта сработал и на Windows с Linux. Шагу Xcode понадобился Mac.

Что говорит документация и что увидели мы

На странице Godot 4.7 про iOS сказано, что экспортировать нужно с Mac с установленным Xcode. В нашем тесте редакторы на Windows и Linux всё равно создали проект Xcode. Они вывели это предупреждение и на этом остановились:

WARNING: Xcode Build: .ipa can only be built on macOS. Leaving Xcode project without building the package.
WARNING: Project export for preset "iOS" completed with warnings.

Мы скопировали каждый проект на Mac и собрали его для устройства. Все три сборки прошли. Считайте это проверенным обходным путём, а не официальной функцией. В нашей тестовой игре не было плагинов и кода на C#. В исходниках Godot сказано, что проекты на C# должны экспортироваться под iOS из macOS.

Шаг 1: шаблоны экспорта

Экспортёру нужны шаблоны экспорта для вашей точной версии Godot. В редакторе откройте Editor, затем Manage Export Templates, и скачайте их. Файл для 4.7.2 весит около 1.3 GB. На сервере без экрана распакуйте .tpz сами. Вот папки, которые мы использовали:

# macOS
~/Library/Application Support/Godot/export_templates/4.7.2.stable
# Linux
~/.local/share/godot/export_templates/4.7.2.stable
# Windows (Git Bash)
$APPDATA/Godot/export_templates/4.7.2.stable

Шаг 2: пресет экспорта для iOS

Откройте Project, затем Export, нажмите Add и выберите iOS. Два поля обязательны. App Store Team ID это код из 10 символов из вашего аккаунта Apple Developer, а не ваше имя. Bundle Identifier это ID вашего приложения, например com.example.mygame. Godot сохраняет пресет в export_presets.cfg. Вот та часть нашего, которая имела значение:

# export_presets.cfg
[preset.0]
name="iOS"
platform="iOS"
runnable=true
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="export/GodotDemo.ipa"

[preset.0.options]
application/app_store_team_id="ABCDE12XYZ"
application/bundle_identifier="com.example.godotdemo"
application/export_project_only=true

# project.godot, two settings the export needed
[application]
config/icon="res://icon.svg"

[rendering]
textures/vram_compression/import_etc2_astc=true

Export Project Only говорит Godot создать проект Xcode и остановиться. Без этого Godot на Mac сам запускает xcodebuild, чтобы сделать архив и .ipa. Для этого нужна настоящая подпись, поэтому начните только с проекта.

Шаг 3: экспорт из командной строки

Имя пресета пишется в кавычках. Путь вывода указывается относительно папки, где лежит project.godot.

godot --headless --path demo --export-release "iOS" export/GodotDemo.ipa

Экспорт занял около 9 секунд на Linux и 21 на Windows. Он создал GodotDemo.xcodeproj, папку GodotDemo, файл .pck с данными игры и движок в виде GodotDemo.xcframework.

Две ошибки стоили нам по одному запуску:

  • Без иконки проекта экспорт падает с Invalid icon (icons/settings_58x58). Задайте иконку в Project Settings.
  • Без импорта текстур ETC2/ASTC экспорт падает с пустым сообщением "configuration errors". Включите Import ETC2 ASTC в разделе Rendering, Textures, VRAM Compression.

Шаг 4: сборка на Mac

Отправьте экспортированную папку в git или скопируйте её через scp. На Mac эта команда собирает её для устройства с выключенной подписью:

xcodebuild -project GodotDemo.xcodeproj -scheme GodotDemo \
  -configuration Release -sdk iphoneos \
  -destination 'generic/platform=iOS' \
  -derivedDataPath build build CODE_SIGNING_ALLOWED=NO

Она закончилась меньше чем за 25 секунд и создала приложение на 82 MB. Чтобы выпустить игру, откройте GodotDemo.xcodeproj в Xcode. Выберите свою команду в разделе Signing and Capabilities, затем Product, затем Archive. Наше руководство по публикации описывает загрузку.

Подвох с симулятором

Обычная сборка под симулятор не слинковалась. Официальный шаблон содержит библиотеку движка для симулятора только под Intel (x86_64). На Mac с Apple silicon Xcode ищет arm64 и останавливается с такой ошибкой:

Undefined symbols for architecture arm64:
  "_main", referenced from:

Сборка под x86_64 сработала. Потом приложение запустилось в симуляторе iPhone 17 Pro через Rosetta и показало нашу пустую серую сцену. В документации Godot добавлено, что симулятор поддерживает только рендерер Compatibility.

xcodebuild -project GodotDemo.xcodeproj -scheme GodotDemo \
  -configuration Release -sdk iphonesimulator \
  -destination 'generic/platform=iOS Simulator' ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO \
  -derivedDataPath build build CODE_SIGNING_ALLOWED=NO

Чтобы проверить настоящую скорость и сенсорный ввод, тестируйте на телефоне через TestFlight. Удалённый Mac не видит iPhone, подключённый к вашему PC.

Mac для шага с Xcode

Суточный доступ MacRun это выделенный Mac mini на M6 за $15, или $59 за неделю. Установлен Xcode 27.1, а для старых проектов Xcode 26.6. Godot заранее не установлен. У вас есть права администратора и Homebrew, так что вы ставите версию под свой редактор. Вы работаете по SSH или через демонстрацию экрана из Windows. В конце Mac очищается, поэтому сначала отправьте работу в репозиторий. Советы по экрану есть в руководстве Xcode из Windows.

Кому не стоит арендовать для этого Mac

Если нужна только проверка сборки без подписи, запускайте команды выше на раннерах macOS в GitHub Actions. Все пять наших задач прошли там без собственного Mac. Codemagic даёт частным лицам 500 бесплатных минут на macOS M2 в месяц, по его странице цен на 19 октября 2026 года. Если вы выпускаете обновления каждую неделю годами, б/у Mac может обойтись дешевле аренды. Арендуйте, когда нужен открытый Xcode: ошибки подписи, симулятор или архив для загрузки.

Частые вопросы

Может ли Godot экспортировать под iOS на Windows?

+

В документации Godot сказано экспортировать из macOS. В нашем тесте в октябре 2026 года Godot 4.7.2 на Windows и Linux всё равно создал проект Xcode. Он предупредил, что .ipa можно собрать только на macOS. Потом его собрал Mac.

Нужен ли Mac, чтобы опубликовать игру на Godot в App Store?

+

Да, для последнего шага. Xcode собирает, подписывает и загружает приложение, а Xcode работает только на macOS. Этот шаг закрывает арендованный Mac или CI-раннер на macOS.

Что такое App Store Team ID в экспорте Godot под iOS?

+

Это код из 10 символов вашей команды Apple Developer, например ABCDE12XYZ. Это не ваше имя. В документации Godot сказано, что он есть на developer.apple.com рядом с вашим именем.

Почему сборка Godot под симулятор iOS падает с undefined symbol _main?

+

В нашем тесте официальный шаблон 4.7.2 содержал библиотеку для симулятора только под x86_64. На Mac с Apple silicon добавьте ARCHS=x86_64 в команду xcodebuild. Тогда приложение работает через Rosetta.

Куда класть шаблоны экспорта Godot на машине без экрана?

+

Распакуйте .tpz и переименуйте его папку templates по версии, например 4.7.2.stable. На macOS положите её в ~/Library/Application Support/Godot/export_templates. На Linux используйте ~/.local/share/godot/export_templates.

Можно ли экспортировать проект Godot на C# под iOS из Windows?

+

Нет. Исходный код Godot блокирует экспорт C# под iOS на системах, кроме macOS. Ещё Godot называет C# на iOS экспериментальным. Экспортируйте проекты на C# на Mac.

Похожие руководства