xtool: Cross-Platform Xcode Replacement for iOS Development

xtool: Cross-Platform Xcode Replacement for iOS Development

Summary

xtool is an innovative cross-platform tool designed to replace Xcode, enabling developers to build and deploy iOS applications using SwiftPM on Linux, Windows, and macOS. It streamlines the iOS development workflow by offering functionalities like building SwiftPM packages into apps, signing, installation, and programmatic interaction with Apple Developer Services.

Repository Info

Updated on April 23, 2026
View on GitHub

Introduction

xtool is a powerful, open-source tool that serves as a cross-platform alternative to Apple's Xcode, allowing developers to build and deploy iOS applications using Swift Package Manager (SwiftPM) on various operating systems, including Linux, Windows, and macOS. This project aims to replicate essential Xcode functionalities with open standards, making iOS development more accessible.

With 4784 stars and 120 forks on GitHub, xtool has garnered significant attention from the developer community. It is licensed under the MIT License and primarily written in Swift.

Key features include:

  • Building a SwiftPM package into an iOS app.
  • Signing and installing iOS apps.
  • Programmatically interacting with Apple Developer Services.

Installation

Getting started with xtool is straightforward. Follow the official guides to install it on your preferred operating system:

After installation, you can create and run your first xtool-powered app by following the comprehensive tutorial.

Examples

xtool offers both a robust command-line interface (CLI) and a library for programmatic use.

Command Line Interface

The CLI provides various subcommands for configuration, development, and device management:

$ 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.

Library Usage (XKit)

xtool also includes XKit, a library that allows you to interact with Apple Developer Services, iOS devices, and more directly from your own Swift applications. You can add it 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")

Why Use xtool?

xtool addresses a significant pain point for many developers, the macOS-only dependency of Xcode for iOS app development. By providing a cross-platform solution, xtool empowers developers to:

  • Develop iOS apps on Linux and Windows: Break free from macOS hardware requirements.
  • Automate workflows: Programmatically interact with Apple Developer Services and device management.
  • Leverage SwiftPM: Utilize the native Swift Package Manager for building iOS applications.
  • Integrate with existing tools: Seamlessly integrate with various development environments and CI/CD pipelines.

Links