Guía

Exporta un juego de Godot a iOS sin tener un Mac

La exportación de Godot para iOS convierte tu juego en un proyecto de Xcode. Después Xcode compila, firma y sube la app, y Xcode solo funciona en macOS. Ejecutamos toda la cadena en GitHub Actions el 19 de octubre de 2026, con Godot 4.7.2. El paso de exportación también funcionó en Windows y Linux. El paso de Xcode necesitó el Mac.

Lo que dice la documentación, y lo que vimos

La página de iOS de Godot 4.7 dice que debes exportar desde un Mac con Xcode instalado. En nuestra prueba, los editores de Windows y Linux generaron el proyecto de Xcode de todos modos. Mostraron este aviso y se detuvieron ahí:

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.

Copiamos cada proyecto a un Mac y lo compilamos para dispositivo. Las tres builds funcionaron. Tómalo como un atajo probado, no como una función oficial. Nuestro juego de prueba no tenía plugins ni código C#. El código fuente de Godot dice que los proyectos C# deben exportarse para iOS desde macOS.

Paso 1: plantillas de exportación

El exportador necesita las plantillas de exportación de tu versión exacta de Godot. En el editor, abre Editor, luego Manage Export Templates, y descárgalas. El archivo de 4.7.2 ocupa unos 1.3 GB. En un servidor sin pantalla, descomprime tú mismo el .tpz. Estas son las carpetas que usamos:

# 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

Paso 2: el preset de exportación para iOS

Abre Project, luego Export, pulsa Add y elige iOS. Hay dos campos obligatorios. App Store Team ID es el código de 10 caracteres de tu cuenta de Apple Developer, no tu nombre. Bundle Identifier es el ID de tu app, como com.example.mygame. Godot guarda el preset en export_presets.cfg. Esta es la parte del nuestro que importaba:

# 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 le dice a Godot que genere el proyecto de Xcode y se detenga. Sin esa opción, Godot en un Mac ejecuta xcodebuild por su cuenta para crear un archivo y un .ipa. Eso necesita una firma real, así que empieza solo con el proyecto.

Paso 3: exporta desde la línea de comandos

El nombre del preset va entre comillas. La ruta de salida es relativa a la carpeta que contiene project.godot.

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

La exportación tardó unos 9 segundos en Linux y 21 en Windows. Generó GodotDemo.xcodeproj, una carpeta GodotDemo, el .pck con los datos de tu juego y el motor como GodotDemo.xcframework.

Dos errores nos costaron una ejecución cada uno:

  • Sin icono del proyecto, la exportación falla con Invalid icon (icons/settings_58x58). Pon un icono en Project Settings.
  • Sin la importación de texturas ETC2/ASTC, la exportación falla con un mensaje vacío de "configuration errors". Activa Import ETC2 ASTC en Rendering, Textures, VRAM Compression.

Paso 4: compila en el Mac

Sube la carpeta exportada a git, o cópiala con scp. En el Mac, esto la compila para dispositivo con la firma desactivada:

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

Terminó en menos de 25 segundos y creó una app de 82 MB. Para publicarla, abre GodotDemo.xcodeproj en Xcode. Elige tu equipo en Signing and Capabilities y luego Product, Archive. Nuestra guía de publicación explica la subida.

La pega del simulador

Una build normal para el simulador falló al enlazar. La plantilla oficial trae la biblioteca del motor para el simulador solo para Intel (x86_64). En un Mac con Apple silicon, Xcode busca arm64 y se detiene con este error:

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

Compilar para x86_64 funcionó. La app se ejecutó entonces en el simulador del iPhone 17 Pro con Rosetta y mostró nuestra escena gris vacía. La documentación de Godot añade que el simulador solo admite el renderizador 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

Para la velocidad real y el tacto, prueba en un teléfono con TestFlight. Un Mac remoto no ve un iPhone conectado a tu PC.

Un Mac para el paso de Xcode

Un pase de un día de MacRun es un Mac mini M6 dedicado por $15, o $59 por una semana. Xcode 27.1 está instalado, y Xcode 26.6 para proyectos antiguos. Godot no viene preinstalado. Tienes acceso admin y Homebrew, así que instalas la versión que coincide con tu editor. Trabajas por SSH o con la pantalla compartida desde Windows. El Mac se borra al final, así que sube antes tu trabajo. Para consejos sobre la pantalla, consulta Xcode desde Windows.

Quién no debería alquilar un Mac para esto

Si solo necesitas comprobar una build sin firma, ejecuta los comandos de arriba en runners de macOS de GitHub Actions. Nuestros cinco jobs funcionaron ahí sin un Mac propio. Codemagic da a los particulares 500 minutos gratis de macOS M2 al mes, según su página de precios del 19 de octubre de 2026. Si publicas cada semana durante años, un Mac usado puede salir más barato que alquilar. Alquila cuando necesites Xcode abierto: errores de firma, el simulador o un archivo para subir.

Preguntas frecuentes

¿Puede Godot exportar a iOS en Windows?

+

La documentación de Godot dice que se exporte desde macOS. En nuestra prueba de octubre de 2026, Godot 4.7.2 en Windows y Linux sí generó el proyecto de Xcode. Avisó de que el .ipa solo se puede crear en macOS. Después, un Mac lo compiló.

¿Necesito un Mac para publicar un juego de Godot en la App Store?

+

Sí, para el último paso. Xcode compila, firma y sube la app, y Xcode solo funciona en macOS. Un Mac alquilado o un runner de CI con macOS cubre ese paso.

¿Qué es el App Store Team ID en la exportación de Godot para iOS?

+

Es el código de 10 caracteres de tu equipo de Apple Developer, como ABCDE12XYZ. No es tu nombre. La documentación de Godot dice que lo encuentras en developer.apple.com, junto a tu nombre.

¿Por qué mi build de Godot para el simulador de iOS falla con undefined symbol _main?

+

En nuestra prueba, la plantilla oficial de 4.7.2 tenía una biblioteca de simulador solo para x86_64. En un Mac con Apple silicon, añade ARCHS=x86_64 al comando xcodebuild. La app funciona entonces con Rosetta.

¿Dónde van las plantillas de exportación de Godot en una máquina sin pantalla?

+

Descomprime el .tpz y cambia el nombre de su carpeta templates a la versión, como 4.7.2.stable. En macOS ponla en ~/Library/Application Support/Godot/export_templates. En Linux usa ~/.local/share/godot/export_templates.

¿Puedo exportar a iOS un proyecto de Godot en C# desde Windows?

+

No. El código fuente de Godot bloquea la exportación de C# a iOS en sistemas que no sean macOS. Godot también considera experimental C# en iOS. Exporta los proyectos C# en el Mac.

Guías relacionadas