1 ポイント 投稿者 GN⁺ 2025-05-19 | 1件のコメント | WhatsAppで共有
  • XToolは、Xcodeの機能を複数のOSで代替できるクロスプラットフォーム開発ツール
  • SwiftPMを活用し、Linux、Windows、macOSでiOSアプリのビルドと配布が可能
  • 開発者はApple Developer Servicesとプログラム的に連携可能
  • デバイス管理・インストール・アプリ実行などのCLIベースのサブコマンドを提供
  • XKitライブラリにより、アプリ内から直接機能を利用可能

XToolプロジェクト紹介

  • XToolはXcodeに類似した機能を提供するクロスプラットフォーム開発ツールで、Linux、WSL、macOSで動作
  • 従来のXcodeと異なり、WindowsやLinuxでもSwiftPMパッケージをiOSアプリとしてビルドし、実機へ署名・インストールできる
  • 開発者はApple Developer Servicesとのプログラム的連携が可能で、macOSでなくてもiOS開発環境を構築できる

主な機能

  • SwiftPMパッケージのビルドとiOSアプリへの変換をサポート
  • iOSアプリの**署名(Sign)、インストール(Install)**が可能
  • Apple Developer Services連携: 認証およびサービス活用機能を提供

代表的な利用例

コマンドラインインターフェース

  • xtoolは多様なサブコマンドを通じて、開発・デバイス・設定などの機能を提供
    • setup: iOS開発環境のセットアップ
    • auth: Apple開発者認証の管理
    • sdk: Darwin Swift SDKの管理
    • new: 新しいSwiftPMプロジェクトを作成
    • dev: プロジェクトのビルドと実行
    • ds: Apple Developer Servicesと連携
    • devices: デバイス一覧を確認
    • install: ipaファイルをデバイスにインストール
    • uninstall: アプリを削除
    • launch: デバイスにインストールされたアプリを起動

XToolライブラリ(KIT)の活用

  • XKitライブラリをSwiftPM依存関係として追加することで、開発中のアプリからApple Developer ServicesやiOSデバイスの制御などの機能を直接呼び出せる
  • Swift開発者は.package()および.product()宣言だけで、プロジェクトへ容易に統合できる

利点まとめ

  • macOSだけでなく、Linux、Windowsなど多様なプラットフォームでiOSアプリの開発・配布が可能
  • VSCodeなど各種開発ツールとの連携が可能
  • オープンスタンダードベースで、汎用的かつ自動化された開発フローを支援
  • Xcodeが使えない場合の代替手段として有用性が高い

1件のコメント

 
GN⁺ 2025-05-19
Hacker Newsの意見
  • このツールは「Xcodeの代替」や「Xcodeなしで開発」と言っているが、私はXcodeなしでアプリをビルドするのは不可能だと思う。ライブラリやコンパイラのようなものをどう置き換えるのかさらに調べてみると、実際にはそうではない。「Xcodeのビルドシステムは使わないが、iOS SDKとツールチェーンのためにXcodeのインストールは依然として必要」とある。彼らはこのメッセージをもっと明確にすべきだと思う。これは代替品や完全な代案ではなく、既存システムの上に載る、より良い体験を目指すレイヤーだ

    • ここでは別の概念が混同されていると思う。単にXcode/xcodebuildの上に載るレイヤーというわけではなく、Appleが現在iOS/Swift関連のすべてをXcodeリリースと一緒に提供しているだけだ。Xcode IDEやxcodebuildビルドシステムに関心がなくても、ツールチェーンをダウンロード・インストールする唯一の方法がXcodeなので必要になる。Appleはこうしたツールチェーンを別途提供することもできるが、そうしていない
  • JetBrainsは過去にAppCodeを開発していた。AppCodeはiOS/macOS開発向けのスマートIDEだったが、2022年12月14日以降は商用製品として提供されなくなった

    • 今はFleetがXcodeアプリのビルドをサポートしそうに見えるが、AppCodeのときより後退している。現時点ではFleetは私のmacOSアプリをコンパイルできない。アップデートのたびに試しているが、これといった代替がない
    • ObjCの部分には役立たないが、Swiftの部分はCLionプラグインへと分離・移行した。残念ながらObjC関連の内容は /dev/null に送られたようだ
  • https://forums.swift.org/t/… および HNの議論スレッド https://news.ycombinator.com/item?id=43952239 を参照した意見

  • 理論上、このツールによってFlutterアプリ開発者がLinuxでiOSアプリをビルドして配布できるのか気になる。本当にそうなってほしい

    • 技術的にはApple Developer Agreement違反だと理解している。新たな訴訟の火種になりそうだ
    • このプロジェクトは役には立つが、これだけでは十分ではない。1. DartはまだLinuxからiOSへのクロスコンパイルができない。代替としてDartインタプリタは使えるが、性能低下が大きい。2. FlutterのiOSプロジェクトはXcodeプロジェクト形式を使っているので、xtool形式への移行が必要。3. FlutterプラグインのエコシステムはまだCocoaPodsからSwiftPMへ完全には移行しておらず、SwiftPMへ移行していないプラグインはxtoolと互換性がない
    • 私の知る限り、darlingですでに可能だ。Nixpkgsにもxcbuildの代替があるが、コード署名機能については確信がない
    • CodeMagicのような既存サービスを使うのが望ましい。Appleアカウント停止のリスクを負う必要はない
  • xcodeは数か月ごとに9時間かけてダウンロードし、XML・plistファイルをやたらと書き換えるツールだ。あのxcodeのことだ

  • Sweetpadを思い出す。Sweetpadはインストール手順がやや面倒だ。XToolの方がより良い開発体験(DX)を提供しているように見える。このプロジェクトがさらに成長してほしい

    • XToolはプロジェクト情報をyaml形式で定義する点でXcodeGenとも似ている
  • 以前にも「LinuxとWindowsでiOSアプリをビルド」という話があった。https://news.ycombinator.com/item?id=43952239 を参照

  • Githubの組織名が「xtool-org」なのを見た。XToolという会社(レーザー彫刻機およびクラフト技術のメーカー)がこれを問題視しないのか気になる

  • XCodeと切り離された類似ツールとして、Swift UIベースのインターフェースのライブプレビュー機能もあれば素晴らしいだろう

  • スクリーンショットにvscodeアイコンがある?

    • そう。このツールはコマンドラインアプリで、ビルドツールを差し替える役割だけを担う。IDEではないので、コードは好きなエディタで作業する