
xtool
Builds and installs iOS apps from SwiftPM projects on Linux, Windows, and macOS, without Xcode.
- Stars
- 14.5k
- Forks
- 803
- Licence
- MIT
- Language
- Swift
- Last update
- 6 days ago
- Type
- Dev tool
What it is
xtool is a command-line tool that replaces parts of Xcode, Apple's iOS development app. It lets you build a Swift Package Manager project into an iOS app, sign it, and install it on an iPhone or iPad from Linux, Windows (via WSL), or macOS. It also includes a library for talking to Apple Developer Services from your own code.
- Create a new SwiftPM project with xtool new and run it on a connected device with xtool dev
- List connected devices, then install or launch an .ipa file with xtool devices, install, and launch
- Use the XKit library in your own Swift app to interact with Apple Developer Services
- Set up the Darwin Swift SDK and authentication through the setup, sdk, and auth subcommands
Great for
- Developers who want to build iOS apps but do not use a Mac as their main machine
- Swift developers who already organize their projects with SwiftPM
- People comfortable with a terminal who want a scriptable build-and-install workflow
- Developers who want to automate Apple Developer Services tasks from their own Swift code
Not ideal for
- People who need the full Xcode graphical interface, storyboards, or Interface Builder, since the README describes it as a command-line replacement
- Teams that need guaranteed compatibility with every Apple toolchain feature, since the README does not describe coverage details
- Complete beginners to programming, since setup involves Apple developer accounts and signing
How to get it
- 1
See the README
You'll need: Linux, Windows with WSL, or macOS · An Apple ID for signing and device installation
Clone the repository
git clone https://github.com/xtool-org/xtool - 2
Run it
- Follow the installation guide for your platform at xtool.sh (Linux/Windows or macOS).
- Run xtool setup to set up xtool for iOS development.
- Run xtool new to create a SwiftPM project.
- Connect an iOS device and run xtool dev to build and run the app.
- Follow the first-app tutorial at xtool.sh for a full walkthrough.
- 3
Get the most out of it
- Use xtool help <subcommand> to see detailed options for each command
- Use xtool devices, install, uninstall, and launch to manage apps on a connected device
- Add XKit as a SwiftPM dependency to use Apple Developer Services from your own Swift code
- Check the Documentation folder and the xtool.sh docs for platform-specific guidance
Downloads
Strengths
- Runs on Linux, Windows via WSL, and macOS, so it is not tied to a Mac
- Uses SwiftPM and open standards rather than an Xcode project format
- MIT licensed and actively maintained, with a recent push date and a large community of stars
Trade-offs
- Depends on Apple Developer Services and signing, which requires an Apple account and can add setup friction
- The README is truncated and gives limited detail on which Xcode features are missing
- Installation instructions are on an external website, so the README alone does not show every step
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| xtool (this) | 14.5k | Dev tool | intermediate | 6 days ago | Developers who want to build iOS apps but do not use a Mac as their main machine |
| fastlane | 42.3k | CLI | intermediate | 4 days ago | iOS developers who repeat the same build and release steps by hand |
| SwifterSwift | 15.3k | Library | beginner | 4 days ago | Swift developers building iOS or macOS apps who want common helper methods ready to use |
| Kingfisher | 24.4k | Library | beginner | 4 days ago | iOS or macOS developers who need to show remote images in lists or detail screens |
| kivy | 19k | Framework | intermediate | 4 days ago | Python developers who want one codebase for desktop and mobile apps |
| popcorntime | 10.7k | App | intermediate | 2 months ago | People who want one app to browse movies and TV shows across platforms |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.