Sheet 01 · cross-platform Xcode replacement
iOS apps, built from a Linux shell.
xtool replicates Xcode's job with open standards. It builds a SwiftPM package into an iOS app, signs it, and installs it on your device, from Linux, Windows through WSL, or macOS.
xtool setupOnce: sign in, then point it atXcode.xip.xtool newAn iOS-capable Swift package.xtool devBuild, install and run on the device over USB.
The first build compiles the iOS SDK's Swift modules, so it takes a few minutes. Later runs reuse SwiftPM's global cache.
Detail A
The build path, part by part.
Five stations from package to running app. Numbered balloons point to the parts list below.
- A
Swift package
A SwiftPM package plus an
xtool newxtool.yml. - B14
iOS app
SwiftPM builds it against the
xtool devdarwinSDK. - C5
Signed
Through Apple Developer Services, with your sign-in.
xtool auth · ds - D26
On device
Over USB, with usbmuxd doing the talking.
xtool devices · install - E
Running
First run: tap Trust, and enable Developer Mode if asked.
xtool launch
Not to scale. Station E notes come from the first-app tutorial.
Parts list
Six parts, and one of them is still Xcode.
| No. | Part | Comes from | When |
|---|---|---|---|
| 1 | Swift 6.4 toolchain | swift.org, for your Linux distribution | Before setup |
| 2 | usbmuxd | The libimobiledevice project; often preinstalled | Before setup |
| 3 | Xcode.xip (Xcode 27) | Apple, downloaded in a browser with your Apple ID | Once |
| 4 | iOS Swift SDK, darwin | Generated by xtool setup from part 3 | Once |
| 5 | Apple sign-in | An API key or a password, chosen in xtool setup | Once |
| 6 | USBIPD | Windows only: USB passthrough into WSL | Windows |
Part 5 · sign-in
Two ways to sign in, with the trade-off printed.
0 · API key
The recommended option
Requires a paid Apple Developer Program membership and uses the public App Store Connect API, with a Team Key in the App Manager role.
1 · Password
Works with any Apple ID
Uses private Apple APIs to authenticate, so the docs suggest a throwaway Apple ID if you want to be extra cautious.
From the install guide: your credentials are only sent to Apple and nobody else
, and you can build xtool from source to check.
Configuration
- setup
- Set up xtool for iOS development
- auth
- Manage Apple Developer Services authentication
- sdk
- Manage the Darwin Swift SDK
Development
- new
- Create a new xtool SwiftPM project
- dev
- Build and run an xtool SwiftPM project
- ds
- Interact with Apple Developer Services
Device
- devices
- List devices
- install
- Install an ipa file to your device
- uninstall
- Uninstall an installed app
- launch
- Launch an installed app