Как экспортировать игру на 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.