1 points par GN⁺ 2025-05-19 | 1 commentaires | Partager sur WhatsApp
  • XTool est un outil de développement multiplateforme capable de remplacer les fonctionnalités de Xcode sur plusieurs systèmes d’exploitation
  • Grâce à SwiftPM, il permet de compiler et déployer des apps iOS sur Linux, Windows et macOS
  • Les développeurs peuvent interagir de manière programmatique avec les Apple Developer Services
  • Il fournit des sous-commandes en CLI pour la gestion des appareils, l’installation, l’exécution d’apps, etc.
  • La bibliothèque XKit permet d’utiliser directement ces fonctionnalités depuis l’intérieur d’une app

Présentation du projet XTool

  • XTool est un outil de développement multiplateforme offrant des fonctionnalités similaires à Xcode, et fonctionne sur Linux, WSL et macOS
  • Contrairement à Xcode, il permet aussi sous Windows et Linux de compiler des paquets SwiftPM en apps iOS, puis de les signer et installer sur de vrais appareils
  • Les développeurs peuvent s’intégrer programmatiquement aux Apple Developer Services et mettre en place un environnement de développement iOS même sans macOS

Fonctionnalités principales

  • Prise en charge de la compilation de paquets SwiftPM et de leur conversion en apps iOS
  • Possibilité de signer (Sign) et installer (Install) des apps iOS
  • Intégration avec les Apple Developer Services : fournit des fonctions d’authentification et d’accès aux services

Exemples d’utilisation représentatifs

Interface en ligne de commande

  • xtool fournit diverses fonctionnalités via plusieurs sous-commandes liées au développement, aux appareils et à la configuration
    • setup : configuration de l’environnement de développement iOS
    • auth : gestion de l’authentification développeur Apple
    • sdk : gestion du Darwin Swift SDK
    • new : création d’un nouveau projet SwiftPM
    • dev : compilation et exécution du projet
    • ds : interaction avec les Apple Developer Services
    • devices : consultation de la liste des appareils
    • install : installation d’un fichier ipa sur un appareil
    • uninstall : suppression d’une app
    • launch : lancement d’une app installée sur l’appareil

Utilisation de la bibliothèque XTool (KIT)

  • En ajoutant la bibliothèque XKit comme dépendance SwiftPM, il devient possible d’appeler directement depuis l’app en cours de développement des fonctions comme le contrôle des Apple Developer Services ou des appareils iOS
  • Les développeurs Swift peuvent l’intégrer facilement au projet via les déclarations .package() et .product()

Résumé des avantages

  • Permet le développement et le déploiement d’apps iOS sur diverses plateformes, notamment Linux et Windows, et pas seulement macOS
  • Compatible avec divers outils de développement comme VSCode
  • Repose sur des standards ouverts et prend en charge des flux de développement génériques et automatisés
  • Offre une forte valeur comme alternative lorsque l’utilisation de Xcode est impossible

1 commentaires

 
GN⁺ 2025-05-19
Avis Hacker News
  • Cet outil parle de « remplacement de Xcode » et de « développement sans Xcode », mais je pense qu’il est impossible de construire une app sans Xcode. En cherchant davantage comment ils remplacent les bibliothèques, le compilateur et autres éléments, ce n’est en réalité pas le cas. Ils disent : « Le système de build Xcode n’est pas utilisé, mais l’installation de Xcode reste nécessaire pour le SDK iOS et la toolchain. » Je pense qu’ils devraient clarifier davantage leur message. Ce n’est pas un remplaçant ni une alternative complète, mais une couche ajoutée au système existant pour offrir une meilleure expérience

    • Je pense que plusieurs notions sont confondues ici. Ce n’est pas simplement une couche au-dessus de Xcode/xcodebuild ; c’est surtout qu’Apple livre actuellement tout ce qui concerne iOS/Swift avec les releases de Xcode. Même si l’on ne s’intéresse ni à l’IDE Xcode ni au système de build xcodebuild, Xcode reste nécessaire car c’est le seul moyen de télécharger et d’installer la toolchain. Apple pourrait distribuer ces toolchains séparément, mais ne le fait pas
  • JetBrains avait autrefois développé AppCode. AppCode était un IDE intelligent pour le développement iOS/macOS, mais il n’est plus proposé comme produit commercial depuis le 14 décembre 2022

    • Aujourd’hui, Fleet semble prendre en charge la compilation d’apps Xcode, mais c’est un recul par rapport à AppCode. À l’heure actuelle, Fleet ne peut pas compiler mon app macOS. J’essaie à chaque mise à jour, mais il n’y a pas vraiment d’alternative
    • Cela n’aide pas pour la partie ObjC, mais la partie Swift a été déplacée dans un plugin CLion. Malheureusement, le contenu lié à ObjC semble avoir été envoyé dans /dev/null
  • Avis faisant référence à https://forums.swift.org/t/… ainsi qu’au fil de discussion HN https://news.ycombinator.com/item?id=43952239

  • Je me demande si, en théorie, cet outil permettrait aux développeurs d’apps Flutter de construire et de déployer des apps iOS depuis Linux. J’aimerais vraiment que ce soit le cas

    • D’après ce que je sais, cela violerait techniquement l’Apple Developer Agreement. Cela ressemble à un bon prétexte pour un nouveau procès
    • Ce projet aide, mais il ne suffit pas à lui seul. 1. Dart ne prend toujours pas en charge la cross-compilation de Linux vers iOS. Une alternative serait d’utiliser l’interpréteur Dart, mais avec une forte dégradation des performances. 2. Les projets Flutter iOS utilisent le format de projet Xcode, il faudrait donc migrer vers le format xtool. 3. L’écosystème des plugins Flutter n’a pas encore entièrement migré de CocoaPods vers SwiftPM, donc les plugins non migrés vers SwiftPM ne sont pas compatibles avec xtool
    • À ma connaissance, c’est déjà possible avec darling. Il existe aussi une alternative à xcbuild dans Nixpkgs, mais je ne suis pas sûr pour la prise en charge de la signature de code
    • Il vaudrait mieux utiliser des services déjà disponibles comme CodeMagic. Pas besoin de risquer la suspension de son compte Apple
  • xcode, c’est cet outil qu’il faut télécharger pendant 9 heures tous les quelques mois, et qui modifie frénétiquement des fichiers XML et plist. Oui, ce Xcode-là

  • Cela fait penser à Sweetpad. L’installation de Sweetpad est un peu fastidieuse. XTool semble offrir une meilleure expérience développeur (DX). J’espère que ce projet va continuer à se développer

    • XTool ressemble aussi à XcodeGen dans le sens où les informations du projet sont définies au format yaml
  • Il y a déjà eu des discussions sur le sujet « construire des apps iOS sur Linux et Windows ». Voir https://news.ycombinator.com/item?id=43952239

  • J’ai remarqué que le nom de l’organisation GitHub est « xtool-org ». Je me demande si l’entreprise XTool (fabricant de graveurs laser et de technologies de loisirs créatifs) n’y verra pas un problème

  • Ce serait formidable s’il existait aussi un outil similaire, séparé de Xcode, avec une fonctionnalité d’aperçu en temps réel pour les interfaces basées sur Swift UI

  • Il y a une icône vscode dans la capture d’écran ?

    • Oui. Cet outil est une application en ligne de commande qui remplace uniquement l’outil de build. Ce n’est pas un IDE, donc on écrit le code dans l’éditeur de son choix