2025-05-07 18:03:50 +05:30
2025-05-06 11:30:59 +05:30
2025-05-07 15:28:47 +05:30
2025-05-06 11:30:59 +05:30
2025-05-07 18:03:50 +05:30
2025-05-06 11:30:59 +05:30
2025-05-06 11:03:06 +05:30
2025-05-06 11:30:59 +05:30
2025-05-06 11:30:59 +05:30
2025-05-06 13:09:18 +05:30
2024-11-17 03:19:41 -05:00
2024-12-23 19:42:47 +05:30
2025-05-06 13:36:19 +05:30
2025-05-06 13:36:19 +05:30
2025-05-07 15:29:48 +05:30

xtool

Cross-platform Xcode replacement. Build and deploy iOS apps with SwiftPM on Linux 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

A screenshot of xtool being invoked from VSCode

Usage

  • xtool works out of the box on macOS.
  • On Linux, you'll need the development packages of libimobiledevice + its dependencies.
    • Alternatively, we provide a Dockerfile that does this for you. See Linux/README.md.

Installation (CLI)

$ git clone https://github.com/xtool-org/xtool
$ cd xtool
$ swift run xtool --help
OVERVIEW: Cross-platform Xcode replacement

USAGE: xtool <subcommand>

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 <subcommand>' for detailed help.

Installation (Library)

xtool includes a library that you can use to interact with Apple Developer Services, iOS devices, and more from your own app. You can use this by adding XKit as a SwiftPM dependency.

// package dependency:
.package(url: "https://github.com/xtool-org/xtool", .upToNextMinor(from: "1.2.0"))
// target dependency:
.product(name: "XKit", package: "xtool")
Description
Languages
Swift 99%
Makefile 0.2%
C 0.2%
Shell 0.2%
JavaScript 0.2%
Other 0.2%