1 Punkte von GN⁺ 2025-05-19 | 1 Kommentare | Auf WhatsApp teilen
  • XTool ist ein plattformübergreifendes Entwicklungstool, das Xcode-Funktionen auf mehreren Betriebssystemen ersetzen kann
  • Mit SwiftPM sind Build und Bereitstellung von iOS-Apps unter Linux, Windows und macOS möglich
  • Entwickler können sich programmgesteuert mit den Apple Developer Services integrieren
  • Es bietet CLI-basierte Subcommands für Geräteverwaltung, Installation, App-Start und mehr
  • Mit der XKit-Bibliothek lassen sich Funktionen direkt innerhalb der App nutzen

Einführung in das XTool-Projekt

  • XTool ist ein plattformübergreifendes Entwicklungstool mit ähnlichen Funktionen wie Xcode und läuft unter Linux, WSL und macOS
  • Anders als das bisherige Xcode können damit auch unter Windows und Linux SwiftPM-Pakete zu iOS-Apps gebaut und auf realen Geräten signiert und installiert werden
  • Entwickler können programmgesteuert mit den Apple Developer Services interagieren und auch ohne macOS eine iOS-Entwicklungsumgebung aufbauen

Hauptfunktionen

  • Unterstützung für Build von SwiftPM-Paketen und Umwandlung in iOS-Apps
  • Signieren (Sign) und Installieren (Install) von iOS-Apps möglich
  • Integration mit Apple Developer Services: bietet Funktionen für Authentifizierung und Nutzung von Diensten

Typische Anwendungsbeispiele

Kommandozeilenschnittstelle

  • xtool bietet über verschiedene Subcommands Funktionen für Entwicklung, Geräte, Konfiguration und mehr
    • setup: iOS-Entwicklungsumgebung einrichten
    • auth: Apple-Entwicklerauthentifizierung verwalten
    • sdk: Darwin Swift SDK verwalten
    • new: neues SwiftPM-Projekt erstellen
    • dev: Projekt bauen und ausführen
    • ds: mit Apple Developer Services interagieren
    • devices: Geräteliste anzeigen
    • install: ipa-Datei auf einem Gerät installieren
    • uninstall: App löschen
    • launch: installierte App auf dem Gerät starten

Nutzung der XTool-Bibliothek (KIT)

  • Durch Einbinden der XKit-Bibliothek als SwiftPM-Abhängigkeit lassen sich Funktionen wie die direkte Steuerung von Apple Developer Services und iOS-Geräten aus der in Entwicklung befindlichen App heraus aufrufen
  • Swift-Entwickler können sie über .package()- und .product()-Deklarationen einfach in ein Projekt integrieren

Zusammenfassung der Vorteile

  • Entwicklung und Bereitstellung von iOS-Apps sind nicht nur unter macOS, sondern auch auf Linux und Windows möglich
  • Integration mit verschiedenen Entwicklungstools wie VSCode möglich
  • Basiert auf offenen Standards und unterstützt einen allgemeinen, automatisierten Entwicklungs-Workflow
  • Besonders wertvoll als Alternative, wenn Xcode nicht verwendet werden kann

1 Kommentare

 
GN⁺ 2025-05-19
Hacker-News-Kommentare
  • Dieses Tool spricht von einem „Xcode-Ersatz“ und von „Entwicklung ohne Xcode“, aber ich denke, dass es unmöglich ist, Apps ohne Xcode zu bauen. Als ich genauer nachgesehen habe, wie Dinge wie Bibliotheken oder Compiler ersetzt werden, stellte sich heraus, dass das tatsächlich nicht so ist. Dort steht: „Das Xcode-Build-System wird nicht verwendet, aber für das iOS SDK und die Toolchain ist eine Xcode-Installation weiterhin erforderlich.“ Ich denke, sie sollten ihre Botschaft klarer formulieren. Das ist kein Ersatz und keine vollständige Alternative, sondern eine Schicht auf dem bestehenden System, die eine bessere Erfahrung anstrebt

    • Ich denke, hier werden verschiedene Konzepte miteinander verwechselt. Es ist nicht einfach nur eine Schicht über Xcode/xcodebuild, sondern Apple liefert derzeit schlicht alles rund um iOS/Swift zusammen mit den Xcode-Releases aus. Selbst wenn man sich nicht für die Xcode-IDE oder das xcodebuild-Build-System interessiert, braucht man es, weil Xcode der einzige Weg ist, die Toolchain herunterzuladen und zu installieren. Apple könnte solche Toolchains separat bereitstellen, tut es aber nicht
  • JetBrains hat früher AppCode entwickelt. AppCode war eine smarte IDE für die iOS/macOS-Entwicklung, wird aber seit dem 14. Dezember 2022 nicht mehr als kommerzielles Produkt angeboten

    • Jetzt scheint Fleet Xcode-App-Builds zu unterstützen, aber das ist ein Rückschritt gegenüber AppCode. Aktuell kann Fleet meine macOS-App nicht kompilieren. Ich probiere es bei jedem Update wieder, aber es gibt keine wirkliche Alternative
    • Für den ObjC-Teil hilft das nicht, aber der Swift-Teil wurde in ein CLion-Plugin ausgegliedert. Leider scheint alles rund um ObjC nach /dev/null geschickt worden zu sein
  • Kommentar mit Verweis auf https://forums.swift.org/t/… und den HN-Diskussionsbeitrag https://news.ycombinator.com/item?id=43952239

  • Ich frage mich, ob dieses Tool es theoretisch Flutter-App-Entwicklern ermöglichen würde, iOS-Apps unter Linux zu bauen und zu deployen. Ich hoffe wirklich, dass das der Fall ist

    • Soweit ich weiß, wäre das technisch gesehen ein Verstoß gegen das Apple Developer Agreement. Klingt nach Material für die nächste Klage
    • Dieses Projekt ist hilfreich, aber allein nicht ausreichend. 1. Dart unterstützt Cross-Compiling von Linux nach iOS noch nicht. Als Alternative könnte man den Dart-Interpreter verwenden, aber das kostet viel Performance. 2. Flutter-iOS-Projekte verwenden das Xcode-Projektformat, daher wäre eine Migration ins xtool-Format nötig. 3. Das Flutter-Plugin-Ökosystem ist noch nicht vollständig von CocoaPods zu SwiftPM migriert, daher sind Plugins, die nicht auf SwiftPM migriert wurden, nicht mit xtool kompatibel
    • Soweit ich weiß, ist das mit darling bereits möglich. In Nixpkgs gibt es auch eine xcbuild-Alternative, bei der ich mir beim Code Signing aber nicht sicher bin
    • Es ist sinnvoller, bereits verfügbare Dienste wie CodeMagic zu nutzen. Es gibt keinen Grund, das Risiko einer Sperrung des Apple-Kontos einzugehen
  • xcode ist das Ding, das man alle paar Monate 9 Stunden lang herunterladen muss und das wild XML- und plist-Dateien bearbeitet. Genau dieses xcode

  • Erinnert mich an Sweetpad. Die Installation von Sweetpad ist etwas umständlich. XTool scheint eine bessere Developer Experience (DX) zu bieten. Hoffentlich wächst dieses Projekt weiter

    • XTool hat auch Ähnlichkeiten mit XcodeGen, weil Projektinformationen im YAML-Format definiert werden
  • Früher gab es schon einmal Gespräche über „iOS-Apps unter Linux und Windows bauen“. Siehe https://news.ycombinator.com/item?id=43952239

  • Ich habe gesehen, dass die GitHub-Organisation „xtool-org“ heißt. Ich frage mich, ob die Firma XTool (Hersteller von Lasergravierern und Crafting-Technik) daraus ein Problem machen wird

  • Es wäre großartig, wenn es als ähnliches Tool, getrennt von XCode, auch eine Live-Preview-Funktion für auf Swift UI basierende Interfaces gäbe

  • Ist auf dem Screenshot ein vscode-Icon zu sehen?

    • Ja. Dieses Tool ist eine Kommandozeilen-App und ersetzt nur das Build-Tool. Es ist keine IDE, daher bearbeitet man den Code im Editor seiner Wahl