xtool - Herramienta para compilar y desplegar apps de iOS sin Xcode
(github.com/xtool-org)- Herramienta multiplataforma que reemplaza Xcode, capaz de compilar proyectos basados en SwiftPM en Linux, Windows (WSL) y macOS y desplegarlos en dispositivos como
.ipa - Resulta útil en entornos de CI/CD al simplificar y automatizar tareas que normalmente requieren Xcode (es el resultado de 8 años de trabajo para automatizar el despliegue de iOS)
- Ofrece funciones de firma e instalación de apps iOS, además de integración con Apple Developer Services
- Con una librería Swift llamada
XKit, las apps del usuario pueden interactuar directamente con Apple Developer Services o con dispositivos iOS
- Con una librería Swift llamada
- Limitaciones fuera de entornos macOS y planes futuros
- Interface Builder: su implementación es muy compleja y SwiftUI ya lo sustituye en gran medida
- Asset Catalogs: requieren ingeniería inversa, pero vale la pena incorporarlos. Por ahora se puede reemplazar agregando archivos de imagen como archivos raw
- Macros propietarias
- Los macros estándar como
@Observablesí funcionan - Los macros exclusivos de Apple, como SwiftData, requieren ingeniería inversa y reconstrucción
- Si Apple los distribuyera en formato de macros WebAssembly, podrían aprovecharse en todas las plataformas (ver propuesta en el foro de Swift)
- Los macros estándar como
- App Extensions
- Actualmente solo se pueden compilar targets de tipo "Application"
- Puede resolverse ampliando la especificación de
xtool.ymlpara darles soporte
- Depuración con LLDB
- Antes de iOS 17 era sencillo, pero Apple cambió la forma de invocar
debugserver - Es posible conectarse usando herramientas como pymobiledevice3
- La integración del nuevo protocolo RemoteXPC queda como tarea futura
- Antes de iOS 17 era sencillo, pero Apple cambió la forma de invocar
- Despliegue en App Store Connect
- Por ahora solo admite ejecución en dispositivos propios
iTMSTransporteres multiplataforma y la infraestructura para integrar la API de ASC ya está preparada, así que su implementación es viable
1 comentarios
Parece que esto se hizo aparte y no tiene relación con el anuncio de Apple sobre hacer Swift Build de código abierto.