1 puntos por GN⁺ 2025-05-19 | 1 comentarios | Compartir por WhatsApp
  • XTool es una herramienta de desarrollo multiplataforma que puede reemplazar funciones de Xcode en varios sistemas operativos
  • Aprovecha SwiftPM para permitir la compilación y distribución de apps iOS en Linux, Windows y macOS
  • Los desarrolladores pueden integrarse de forma programática con Apple Developer Services
  • Ofrece subcomandos basados en CLI para gestión de dispositivos, instalación, ejecución de apps y más
  • Con la librería XKit es posible usar directamente sus funciones dentro de la app

Introducción al proyecto XTool

  • XTool es una herramienta de desarrollo multiplataforma que ofrece funciones similares a Xcode y funciona en Linux, WSL y macOS
  • A diferencia de Xcode tradicional, también permite en Windows y Linux compilar paquetes SwiftPM como apps iOS y firmarlas e instalarlas en dispositivos reales
  • Los desarrolladores pueden lograr integración programática con Apple Developer Services y construir un entorno de desarrollo iOS incluso sin macOS

Funciones principales

  • Soporte para compilar paquetes SwiftPM y convertirlos en apps iOS
  • Posibilidad de firmar (Sign) e instalar (Install) apps iOS
  • Integración con Apple Developer Services: ofrece funciones de autenticación y uso de servicios

Ejemplos de uso representativos

Interfaz de línea de comandos

  • xtool ofrece funciones de desarrollo, dispositivos, configuración y más mediante diversos subcomandos
    • setup: configurar el entorno de desarrollo iOS
    • auth: gestionar la autenticación de desarrollador de Apple
    • sdk: gestionar el Darwin Swift SDK
    • new: crear un nuevo proyecto SwiftPM
    • dev: compilar y ejecutar el proyecto
    • ds: interactuar con Apple Developer Services
    • devices: ver la lista de dispositivos
    • install: instalar un archivo ipa en el dispositivo
    • uninstall: eliminar la app
    • launch: ejecutar una app instalada en el dispositivo

Uso de la librería XTool (KIT)

  • Al registrar la librería XKit como dependencia de SwiftPM, es posible invocar directamente desde la app en desarrollo funciones como Apple Developer Services y el control de dispositivos iOS
  • Los desarrolladores Swift pueden integrarla fácilmente al proyecto solo con declaraciones .package() y .product()

Resumen de ventajas

  • Permite desarrollar y distribuir apps iOS en múltiples plataformas, no solo macOS sino también Linux y Windows
  • Posibilita la integración con diversas herramientas de desarrollo como VSCode
  • Está basado en estándares abiertos y soporta flujos de desarrollo genéricos y automatizados
  • Tiene alto valor como alternativa cuando no es posible usar Xcode

1 comentarios

 
GN⁺ 2025-05-19
Opiniones de Hacker News
  • Esta herramienta dice "reemplazo de Xcode" y "desarrollo sin Xcode", pero yo pensaba que era imposible compilar una app sin Xcode. Al investigar más sobre cómo reemplaza cosas como las librerías o el compilador, resulta que en realidad no es así. Dice que "no usa el sistema de compilación de Xcode, pero la instalación de Xcode sigue siendo necesaria para el SDK de iOS y la toolchain". Creo que deberían hacer su mensaje más claro. Esto no es un reemplazo ni una alternativa completa, sino una capa montada sobre el sistema existente que busca una mejor experiencia

    • Creo que aquí se están confundiendo conceptos distintos. No es simplemente una capa sobre Xcode/xcodebuild; más bien, Apple actualmente entrega todo lo relacionado con iOS/Swift junto con los lanzamientos de Xcode. Aunque no te interese el IDE de Xcode ni el sistema de compilación xcodebuild, sigue siendo necesario porque Xcode es la única forma de descargar e instalar la toolchain. Apple podría ofrecer esa toolchain por separado, pero no lo hace
  • JetBrains desarrolló AppCode en el pasado. AppCode era un IDE inteligente para desarrollo iOS/macOS, pero dejó de ofrecerse como producto comercial desde el 14 de diciembre de 2022

    • Ahora parece que Fleet va a soportar la compilación de apps de Xcode, pero es un retroceso frente a AppCode. Por ahora, Fleet no puede compilar mi app para macOS. Lo intento con cada actualización, pero no hay muchas alternativas
    • No ayuda con la parte de ObjC, pero la parte de Swift se movió a un plugin de CLion. Lamentablemente, parece que todo lo relacionado con ObjC fue enviado a /dev/null
  • Opinión con referencia a https://forums.swift.org/t/… y al hilo de HN https://news.ycombinator.com/item?id=43952239

  • Me pregunto si, en teoría, esta herramienta permitiría que un desarrollador de Flutter compile y publique apps de iOS desde Linux. Ojalá de verdad fuera así

    • Según entiendo, técnicamente eso viola el Apple Developer Agreement. Parece material para otra demanda más
    • Este proyecto sí ayuda, pero por sí solo no basta. 1. Dart todavía no soporta compilación cruzada hacia iOS desde Linux. Como alternativa, se podría usar el intérprete de Dart, pero con una gran pérdida de rendimiento. 2. Los proyectos iOS de Flutter usan el formato de proyecto de Xcode, así que habría que migrarlos al formato de xtool. 3. El ecosistema de plugins de Flutter todavía no se ha movido por completo de CocoaPods a SwiftPM, así que los plugins que no hayan migrado a SwiftPM no serán compatibles con xtool
    • Hasta donde sé, con darling ya es posible. También hay una alternativa a xcbuild en Nixpkgs, aunque no estoy seguro de qué tan bien soporte code signing
    • Lo recomendable sería usar servicios ya existentes como CodeMagic. No vale la pena arriesgarse a que te suspendan la cuenta de Apple
  • xcode es esa herramienta que cada pocos meses hay que descargar durante 9 horas y que se pone a editar archivos XML y plist por todos lados. Ese xcode

  • Me recuerda a Sweetpad. El proceso de instalación de Sweetpad es algo engorroso. XTool parece ofrecer una mejor experiencia de desarrollo (DX). Ojalá este proyecto siga creciendo

    • XTool también se parece a XcodeGen en que define la información del proyecto en formato yaml
  • Antes ya se había hablado de "compilar apps de iOS en Linux y Windows". Ver https://news.ycombinator.com/item?id=43952239

  • Vi que el nombre de la organización en Github es "xtool-org". Me pregunto si la empresa XTool (fabricante de grabadoras láser y tecnología para manualidades) no les va a reclamar por eso

  • Estaría genial que también hubiera una herramienta similar, separada de XCode, con vista previa en tiempo real para interfaces basadas en Swift UI

  • ¿Hay un ícono de vscode en la captura?

    • Sí. Esta herramienta es una app de línea de comandos que solo cambia la herramienta de compilación. No es un IDE, así que el código se trabaja en el editor que quieras