xtool-org /xtool

Cross-platform Xcode replacement. Build and deploy iOS apps with SwiftPM on Linux, Windows, macOS.

★ 15,277⑂ 898👁 48⑃ 241● 170▤ 32◈ 19
SwiftMITCreated 2024-11-17xtool.sh
15,277
stars
898
forks
48
watchers
241
prs
170
issues
32
releases
19
discussions

README

xtool

Cross-platform Xcode replacement. Build and deploy iOS apps with SwiftPM on Linux, Windows, and macOS.

 Overview

xtool is a cross-platform (Linux/WSL/macOS) tool that replicates Xcode functionality with open standards.

✅ Build a SwiftPM package into an iOS app

✅ Sign and install iOS apps

✅ Interact with Apple Developer Services programmatically

 Getting Started

1. Follow the guide to install xtool
    - Installation (Linux/Windows)
    - Installation (macOS)
2. Create and run your first xtool-powered app by following the tutorial!

 Examples

 Screenshot

!A screenshot of xtool being invoked from VSCode

 Command line interface

bash
$ xtool --help
OVERVIEW: Cross-platform Xcode replacement

USAGE: xtool 

OPTIONS:
  -h, --help              Show help information.

CONFIGURATION SUBCOMMANDS:
  setup                   Set up xtool for iOS development
  auth                    Manage Apple Developer Services authentication
  sdk                     Manage the Darwin Swift SDK

DEVELOPMENT SUBCOMMANDS:
  new                     Create a new xtool SwiftPM project
  dev                     Build and run an xtool SwiftPM project
  ds                      Interact with Apple Developer Services

DEVICE SUBCOMMANDS:
  devices                 List devices
  install                 Install an ipa file to your device
  uninstall               Uninstall an installed app
  launch                  Launch an installed app

  See 'xtool help ' for detailed help.


 Library

You can consume xtool itself as a Swift Package, to enable your own app to interact with Apple Developer Services, iOS devices, and more. You can use this by adding XKit or XToolSupport as a SwiftPM dependency.

Note: while we aim to uphold semver semantics on the CLI interface (breaking change = major version bump), the Swift interface does not offer the same guarantees.

swift
// package dependency:
.package(url: "https://github.com/xtool-org/xtool", .upToNextMinor(from: "1.2.0"))
// target dependency:
.product(name: "XKit", package: "xtool")

Top issues

Discussions

Latest release

v1.24.0 1.24.0 2026-10-26
This release fixes another source of HTTP 503 errors when authenticating with an Apple ID.

 What's Changed
 entitlements: support Sign in with Apple by @victoragudo in https://github.com/xtool-org/xtool/pull/377
 sdk: accept directories for tarball overrides  by @ap-1 in https://github.com/xtool-org/xtool/pull/385
 deps: force OpenCombine in the DemoTCA lockfile by @ap-1 in https://github.com/xtool-org/xtool/pull/391
 pack: link edited dependencies into the builder package by @ap-1 in https://github.com/xtool-org/xtool/pull/390
 gsa: update user agent by @kabiroberai in https://github.

Snapshot: 2026-11-11T15:31:17Z · Data license Apache-2.0 · JSON