https://xtool.sh/

Written by

in

xtool is an open-source, command-line tool designed as a cross-platform replacement for Xcode. Created by developer Kabir Oberai, it allows you to build, sign, and deploy iOS applications on Linux (including WSL), Windows, and macOS using the Swift Package Manager (SwiftPM) instead of restrictive .xcodeproj structures. Core Capabilities

True Cross-Platform Development: You can write and compile iOS apps on Linux and Windows platforms without buying a Mac.

SwiftPM Integration: It uses pure Swift packages. You configure your bundle settings natively using an xtool.yml configuration file.

On-Device Deployment: Includes tools to handle code signing and physical device app installation natively from your terminal.

Apple Developer Services: Interacts programmatically with Apple’s backend for managing certificates and authentication tokens.

Blazing Fast Performance: Because it bypasses the massive xcodebuild wrapper, simple builds can finish in sub-second times. How It Works Under the Hood

To safely bypass macOS requirements, xtool relies on a dual setup:

The SDK: It leverages the developer’s Darwin Swift SDK, which uses the official Swift compiler infrastructure to cross-compile for iOS devices (arm64-apple-ios).

Tooling: It communicates via open standards and tools like libimobiledevice to find and talk to physical devices connected to your non-Mac machine. Important Limitations & Legal Caveats

No Official SDK Bundling: For legal compliance, xtool does not distribute Apple’s proprietary framework binaries. The setup process typically asks you to supply a valid Xcode.xip file once to unpack and extract the necessary iOS SDK (like UIKit and SwiftUI modules) on your host machine.

No GUI Interface: There is no built-in Interface Builder. It is designed for code-first UI (like SwiftUI) and text editor integrations, such as using Visual Studio Code via SourceKit-LSP.

Work in Progress: Features like automatic Asset Catalog compilation (.xcassets) and direct App Store uploading remain limited or are still under active development.

You can check out the source files on the xtool GitHub Repository or learn how to write your first app via the xtool Official Documentation.