Skip to content

xtool

Compila, firma e instala apps de iOS hechas con SwiftPM desde Linux, WSL o macOS sin Xcode, para que un agente en Linux pueda llevarlas a un iPhone.

Reseña de Sheela · Actualizado

Ver en GitHub Código abierto

Nuestra nota

3.9/5

xtool pone la compilación para iOS al alcance de un agente en Linux, pero el inicio de sesión de Apple sigue necesitando a una persona y un teléfono conectado.

¿Qué es xtool?

xtool es un sustituto multiplataforma de las partes de Xcode que convierten el código en una app de iOS instalada. Compila un proyecto de Swift Package Manager en una app, la firma, la aprovisiona a través de Apple Developer Services y la instala en un iPhone o iPad conectado por USB, desde Linux, Windows mediante WSL o macOS. Una biblioteca, XKit, expone las mismas funciones de aprovisionamiento y de dispositivo a otros programas en Swift.

xtool no es un proyecto de IA. Es relevante aquí porque los agentes de programación se ejecutan sobre todo en terminales y contenedores de Linux, donde hasta ahora era imposible compilar para iOS; con xtool, los pasos de compilar, firmar e instalar se convierten en comandos de shell que un agente puede ejecutar. La integración con agentes viene de una skill de terceros de 2389 Research, no del repositorio de xtool.

Sigue dependiendo de Apple: en Linux necesitas una toolchain de Swift 6.4, usbmuxd para hablar con el dispositivo y un Xcode.xip descargado con tu Apple ID, del que xtool extrae un SDK de iOS. En macOS hay que tener instalado el propio Xcode.

¿Merece la pena xtool?

xtool saca al Mac del ciclo de compilar, firmar e instalar apps de iOS hechas con SwiftPM, un trabajo que las herramientas de la propia Apple solo hacen en un Mac. El repositorio tiene unas 14.000 estrellas en GitHub, licencia MIT, se desarrolla desde noviembre de 2024 y publicó la 1.24.0 el 26 de octubre de 2026. Para un agente de programación confinado en una VM de Linux, eso convierte una app de iOS de callejón sin salida en algo que puede compilar y poner en un dispositivo con `xtool dev`.

Sustituye a Xcode como herramienta, no al SDK de Apple. La instalación en Linux consiste en instalar Swift 6.4, usbmuxd y el AppImage de xtool, y luego apuntar `xtool setup` a un archivo de Xcode 27.1 que descargas en el navegador después de iniciar sesión y aceptar la licencia de Apple. El inicio de sesión tiene dos modos: una clave de API de App Store Connect, que necesita el programa de desarrolladores de pago y es la recomendación documentada, o la contraseña de tu Apple ID, que funciona con cualquier cuenta pero depende de APIs privadas de Apple; para esto último la documentación sugiere un Apple ID desechable. Desde la 1.22.2, el inicio de sesión con contraseña se presenta ante Apple como un dispositivo Pixel 7.

Esa vía de APIs privadas es donde están los cambios constantes. Los usuarios de Apple ID tuvieron que volver a iniciar sesión después de la 1.22.2, del 14 de octubre, y otra vez después de la 1.23.0, del 22 de octubre; la 1.24.0 corrigió otra causa de errores HTTP 503 al iniciar sesión, y una issue abierta (#407) informa de que los códigos 2FA nunca llegan en la 1.24.0. La versión 1.20.0 pasó la compilación a SwiftBuild y obligó a reinstalar el SDK de Darwin. Salieron seis versiones entre el 21 de septiembre y el 26 de octubre, y hay 124 issues y pull requests abiertas, entre ellas claves mal escritas en xtool.yml que se ignoran sin avisar (#353) y fallos de firma en targets de extensiones de apps (#379).

Las carencias frente a Xcode son estructurales. Según byteiota, no hay simulador en Linux, ni vistas previas de SwiftUI, ni Instruments, y las apps instaladas con una cuenta gratuita caducan a los 7 días. byteiota también describe una skill de Claude Code para xtool; esa skill es el plugin using-xtool de 2389 Research, que sobre todo evita que los agentes confundan xtool.yml con el project.yml de XcodeGen, y el propio repositorio de xtool solo incluye notas para agentes dirigidas a los contribuidores. El resultado es un ciclo semiautomático: el agente puede escribir, compilar e instalar, pero una persona sigue teniendo que conectar el teléfono, aprobar el aviso de 2FA y mirar la pantalla.

Dónde se gana su sitio

  • Un desarrollador de un estudio de dos personas que trabaja en Linux y tiene un iPhone pero no un Mac

    Hacer funcionar un prototipo de SwiftUI en mi propio teléfono

    Instala Swift 6.4, usbmuxd y el AppImage, extrae el SDK del Xcode.xip y luego ejecuta `xtool new` y `xtool dev`. Gratuito con inicio de sesión por contraseña en un Apple ID de repuesto, pero las builds instaladas así caducan a los 7 días y el inicio de sesión se ha roto varias veces en octubre de 2026.

  • Un ingeniero de plataforma que ejecuta agentes de Claude Code en VMs de Linux

    Que el agente compile e instale builds de iOS en lugar de quedarse en el código Swift

    Añade el plugin de xtool de 2389 Research para que el agente use bien xtool.yml y `xtool dev`, y conecta un iPhone de pruebas por USB. El inicio de sesión con clave de API evita guardar una contraseña de Apple ID en la VM; una persona sigue encargándose de la confianza del dispositivo y de comprobar el resultado.

  • El CTO de una pequeña empresa de apps que paga minutos de CI en macOS

    Llevar las comprobaciones rutinarias de compilación de iOS a runners de Linux más baratos

    byteiota sitúa los runners de macOS de GitHub Actions en unas diez veces el coste de los de Linux, así que compilar targets de SwiftPM en Linux ahorra dinero en cada push. Necesita un SDK de Darwin extraído en el runner, y los proyectos ligados a archivos .xcodeproj hay que convertirlos primero.

Antes de decidirte

Puesta en marcha
Linux o WSL: toolchain de Swift 6.4, usbmuxd (paso de USB con USBIPD en WSL), el AppImage de xtool de las versiones de GitHub y el .xip de Xcode 27.1 para que `xtool setup` extraiga un SDK de iOS. macOS: `brew install xtool-org/tap/xtool` con Xcode instalado.
Integraciones
Proyectos de Swift Package Manager configurados con xtool.yml; claves de API de App Store Connect o inicio de sesión con Apple ID; herramientas de libimobiledevice para acceder al dispositivo; la biblioteca XKit para SwiftPM; una skill de terceros, using-xtool, para Claude Code y npx skills, de 2389 Research.
Datos y privacidad
Según la documentación, las credenciales solo van a Apple; el modo con contraseña usa APIs privadas de Apple y se identifica como un dispositivo Pixel 7. No hay telemetría documentada. Licencia MIT.
Coste a escala
Gratuito. La distribución por TestFlight o la App Store sigue exigiendo el Apple Developer Program de 99 $ al año; el ahorro es el hardware Mac y los minutos de CI en macOS, que byteiota sitúa en unas diez veces el precio de los runners de Linux.
Límites
Sin simulador para Linux, vistas previas de SwiftUI ni Instruments; Windows solo a través de WSL; 124 issues y pull requests abiertas; el inicio de sesión con Apple ID ha necesitado reautenticarse dos veces en octubre de 2026 y se informan fallos de 2FA en la 1.24.0.

Lo bueno

  • Compila e instala apps de iOS desde Linux y WSL
  • Proyectos SwiftPM simples; ningún .xcodeproj que mantener
  • El inicio de sesión con clave de API usa la API pública App Store Connect de Apple
  • La biblioteca XKit expone el aprovisionamiento y el control de dispositivos

Lo malo

  • El inicio de sesión con contraseña usa APIs privadas de Apple y se rompe a menudo
  • En Linux sigue necesitando el Xcode.xip de Apple y un dispositivo físico
  • Sin simulador, vistas previas ni Instruments en Linux
  • Nuevos inicios de sesión y reinstalaciones del SDK entre versiones recientes

Ideal para

Desarrolladores y configuraciones de agentes en Linux o Windows que necesitan compilar e instalar apps de iOS hechas con SwiftPM en un dispositivo real sin un Mac.

xtool: preguntas frecuentes

¿Merece la pena xtool?
xtool pone la compilación para iOS al alcance de un agente en Linux, pero el inicio de sesión de Apple sigue necesitando a una persona y un teléfono conectado. Le damos un 3.9 sobre 5.
¿Cuánto cuesta xtool?
Gratuito y de código abierto (MIT). El inicio de sesión con contraseña funciona con cualquier Apple ID; el inicio de sesión con clave de API y la distribución en la App Store o TestFlight necesitan el Apple Developer Program de pago (99 $ al año).
¿Qué inconvenientes tiene xtool?
El inicio de sesión con contraseña usa APIs privadas de Apple y se rompe a menudo; en Linux sigue necesitando el Xcode.xip de Apple y un dispositivo físico; sin simulador, vistas previas ni Instruments en Linux; nuevos inicios de sesión y reinstalaciones del SDK entre versiones recientes.
¿Para quién es xtool?
Desarrolladores y configuraciones de agentes en Linux o Windows que necesitan compilar e instalar apps de iOS hechas con SwiftPM en un dispositivo real sin un Mac.
¿Cuánto cuesta xtool para un equipo o en producción?
Gratuito. La distribución por TestFlight o la App Store sigue exigiendo el Apple Developer Program de 99 $ al año; el ahorro es el hardware Mac y los minutos de CI en macOS, que byteiota sitúa en unas diez veces el precio de los runners de Linux.
¿Es xtool seguro para los datos de la empresa?
Según la documentación, las credenciales solo van a Apple; el modo con contraseña usa APIs privadas de Apple y se identifica como un dispositivo Pixel 7. No hay telemetría documentada. Licencia MIT.

Respuestas comprobadas el 28 oct 2026.