Compila tu juego de Unity para iOS desde Windows
Unity en Windows puede apuntar a iOS, pero se queda a medias. Genera un proyecto de Xcode, y solo Xcode en un Mac puede convertirlo en una app. Esta guía explica cómo pasar el proyecto a un Mac y archivarlo. También habla de las builds en la nube de Unity, que no necesitan Mac.
Qué hace Unity en Windows, y qué necesita el Mac
La página de configuración de iOS de Unity dice que Xcode solo está disponible para macOS. Así que, si tu equipo no usa macOS, no puedes compilar la app en local. Unity compila iOS en dos pasos. Unity genera un proyecto de Xcode, y luego Xcode compila la app a partir de él.
En Windows solo tienes el primer paso. La opción Run in Xcode solo aparece cuando Unity funciona en macOS. El segundo paso hace trabajo real. La documentación de Unity dice que ahí Xcode ejecuta IL2CPP, que compila el C++ de tus scripts en libGameAssembly.a.
Paso 1: exporta el proyecto de Xcode en Windows
- Añade el módulo iOS Build Support a tu editor en Unity Hub.
- Abre File y luego Build Profiles, y pon iOS como plataforma activa.
- Pulsa Build y elige una carpeta vacía, por ejemplo Builds/iOS.
La carpeta contiene Unity-iPhone.xcodeproj. La documentación de Unity describe dos targets dentro. Unity-iPhone es un lanzador ligero, y UnityFramework contiene el runtime y tu código. No toques las carpetas Data y Libraries, porque Unity las regenera en cada build.
Paso 2: cópialo al Mac
Windows trae tar desde Windows 10 build 17063. El cliente scp viene con OpenSSH para Windows, una función opcional desde la build 1809. Si falta scp, añade OpenSSH Client en Características opcionales. Empaqueta la carpeta, cópiala por Tailscale y desempaquétala en el Mac:
cd Builds tar -czf ios-build.tgz iOS scp ios-build.tgz you@your-mac:~/ ssh you@your-mac "mkdir -p ~/MyGame && tar -xzf ~/ios-build.tgz -C ~/MyGame"
Desde Linux o WSL, rsync envía solo lo que cambió desde la última copia. Eso ayuda tras pequeños cambios en un juego grande.
rsync -az --delete Builds/iOS/ you@your-mac:~/MyGame/iOS/
Git también sirve, pero una exportación completa es grande y cambia en cada build. La mayoría de los equipos copian la exportación y dejan git para el proyecto de Unity.
Paso 3: archiva en el Mac
Puedes abrir el .xcodeproj en Xcode desde la pantalla del Mac. Elige el scheme Unity-iPhone y Any iOS Device, y luego Product, Archive. O quédate en la terminal por SSH. Primero lista los targets y los schemes:
cd ~/MyGame/iOS xcodebuild -list -project Unity-iPhone.xcodeproj
Después archiva con el scheme del lanzador. CODE_SIGNING_ALLOWED=NO crea un archivo de prueba sin certificado, que demuestra que el proyecto compila.
xcodebuild -project Unity-iPhone.xcodeproj -scheme Unity-iPhone \ -configuration Release -destination 'generic/platform=iOS' \ -archivePath build/Game.xcarchive archive \ CODE_SIGNING_ALLOWED=NO
Para publicar, quita esa opción y firma con tu equipo. Después exporta con -exportArchive y un ExportOptions.plist con el método app-store-connect. Nuestra guía de publicación tiene los comandos completos de firma y subida.
Algunos juegos usan el External Dependency Manager de Google para los SDK de iOS. Escribe un Podfile y ejecuta CocoaPods después de la build. Si tu exportación tiene un Podfile, ejecuta pod install en el Mac. Luego compila el .xcworkspace en lugar del .xcodeproj. CocoaPods no viene preinstalado, así que añádelo con brew install cocoapods.
Qué probamos y qué no
Unity no puede funcionar en CI sin licencia, así que no exportamos un juego real de Unity. En su lugar, probamos la parte del Mac con un proyecto sustituto de la misma forma: un target de app lanzadora y un target de framework. El 19 de octubre de 2026, el runner macos-26 de GitHub lo archivó con Xcode 26.6. Después, un runner de Windows lo empaquetó con el tar de Windows. Un segundo Mac desempaquetó esa copia y la archivó otra vez.
Xcode 26.6
Build version 17F113
Schemes:
Game-iPhone
GameFramework
** BUILD SUCCEEDED **
** ARCHIVE SUCCEEDED **
scp.exe C:\Windows\System32\OpenSSH\scp.exe
OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2
** ARCHIVE SUCCEEDED **Un juego real tarda mucho más, porque el Mac compila todo el código de IL2CPP. Si una build se detiene con Permission denied en un archivo .sh, la copia perdió el permiso de ejecución. Ejecuta chmod +x en ese archivo y compila de nuevo.
La opción en la nube: Unity Build Automation
La documentación de Unity recomienda Build Automation a quien no tenga Mac. Compila tu juego en los servidores de Unity. Desde el 1 de marzo de 2026, Unity incluye 100 minutos de build en Mac al mes. Después, una máquina Mac estándar cuesta $0.07 por minuto de build, según el artículo de Unity sobre los cargos de DevOps.
Quién no debería alquilar un Mac para esto
- Pocas builds al mes. Los 100 minutos de Mac gratis de Unity Build Automation pueden bastarte, sin ningún Mac.
- Builds en cada commit. Un servicio de CI o un runner de macOS self-hosted encaja mejor que copiar carpetas a mano.
- Trabajo diario en iOS. Si usas un Mac todos los días, comprar uno puede salir más barato en un año.
Cuándo encaja un Mac alquilado
Algunos problemas necesitan Xcode abierto. Los errores de firma, los errores de enlazado de plugins y los fallos en el simulador son más fáciles de arreglar a mano. Un pase de un día de MacRun es un Mac mini M6 dedicado por $15, y una semana cuesta $59. Xcode 27.1 es el predeterminado y Xcode 26.6 también está instalado. Te conectas desde Windows con Tailscale y cualquier visor VNC.
El Mac se borra cuando termina el pase. Descarga tu .ipa y sube tus cambios antes. Para un iPhone real, envía la build por TestFlight, porque un Mac remoto no ve un teléfono conectado a tu PC. Nuestra guía para compilar apps de iOS en Windows compara Unity con otros motores.
Preguntas frecuentes
¿Puede Unity compilar una app de iOS en Windows?
+
Solo a medias. Unity en Windows genera el proyecto de Xcode. La documentación de Unity dice que Xcode solo está disponible para macOS, así que la app se compila en un Mac o en Unity Build Automation.
¿Cómo compilo un proyecto de Xcode de Unity desde la línea de comandos?
+
En el Mac, ejecuta xcodebuild -list para ver los schemes. Después ejecuta xcodebuild archive con el scheme Unity-iPhone y un destino genérico de iOS. Exporta el archivo con -exportArchive para obtener un .ipa.
¿Qué versión de Xcode necesita Unity?
+
La documentación de Unity 6.6 recomienda Xcode 16 o posterior y admite iOS 15 en adelante. Un Mac de MacRun tiene Xcode 27.1 como predeterminado y también Xcode 26.6 instalado.
¿Cuánto cuesta Unity Build Automation para iOS?
+
El artículo de Unity sobre los cargos de DevOps, vigente desde el 1 de marzo de 2026, incluye 100 minutos de build en Mac al mes. Después, una máquina Mac estándar cuesta $0.07 por minuto de build.
¿Cómo copio una build de iOS de Unity de Windows a un Mac?
+
Empaqueta la carpeta exportada con tar, que Windows trae desde Windows 10 build 17063. Cópiala con scp y desempaquétala en el Mac. Desde Linux o WSL, rsync envía solo lo que cambió.
¿Puedo probar mi build de Unity para iOS en un iPhone desde un Mac remoto?
+
No por USB, porque un Mac remoto no ve un teléfono conectado a tu PC. Sube la build a TestFlight e instálala en el teléfono desde ahí.