Requirements
The five host ingredients xcross needs on Windows or Linux, plus device and Xcode archive requirements.
Both Windows and Linux need the same five ingredients before you install xcross. These are host machine requirements - see Device requirements below for what the iPhone itself needs.
| Requirement | Purpose | Where to get it |
|---|---|---|
| Flutter | Your app’s SDK; xcross reuses its engine artifacts | flutter.dev |
| Swift toolchain | Compiles SwiftPM plugins and runner glue code | swift.org/install |
LLVM (clang, clang++, llvm-ar, ld64.lld on PATH) | Compiles and links the iOS Mach-O binaries | releases.llvm.org |
Python 3 + pymobiledevice3 | Device communication and the iOS 17+ RSD tunnel | pymobiledevice3 on GitHub |
A complete Xcode.xip | Processed once by xcross sdk install into a private Darwin Swift SDK | xcodereleases.com |
Windows
Install the Swift and LLVM toolchains from an Administrator PowerShell using winget:
winget install --id Swift.Toolchain --exact
winget install --id LLVM.LLVM --exact
Flutter and Python 3 are installed separately; the installer suggests winget install --id Python.Python.3.12 --exact when no py or python is on PATH.
xcross setup then verifies Flutter, Swift, and LLVM are on PATH and installs pymobiledevice3 for you. If any of those tools are still missing afterward, the command reports exactly which one to fix.
Linux
xcross setup installs the apt-based requirements for you, including usbmuxd, usbutils, and libimobiledevice-utils for USB device access and diagnostics, plus pymobiledevice3. Install Flutter and the Swift toolchain yourself first. xcross setup uses sudo apt-get install, so it needs a distro with apt-get and will prompt for your password once.
Device requirements
- A physical iPhone. xcross does not support the iOS Simulator.
- iOS 17 or later, since launching depends on the CoreDevice launch protocol and RSD tunnel introduced in iOS 17.
- A USB or Wi-Fi connection to the host machine -
xcross flutter runcan target either, or both, when picking a device. - In WSL, attach the iPhone to the Linux side with usbipd-win first; WSL has no USB stack of its own.
About the Xcode archive
NoteDownload Xcode.xip from xcodereleases.com (requires an Apple ID). It is only used as SDK input - neither Xcode nor macOS is ever installed or executed. xcross extracts the iOS SDK and frameworks from the archive with its own pure-Dart xar/pbzx/cpio readers. Don’t redistribute the extracted Apple SDK.
Verify your setup
Run xcross setup at any time to check or install host requirements:
xcross setup
On Linux this installs the apt packages listed above and pymobiledevice3. On Windows it checks that Flutter, Swift, and LLVM are on PATH and installs pymobiledevice3 if it is missing.
Supported host architectures
Prebuilt xcross releases target specific architectures: Linux releases cover x86_64 and aarch64, and Windows releases are x64 only. Other architectures need to compile xcross from source.
See also
- Installation - install the xcross binary itself.
- Darwin SDK - turning
Xcode.xipinto a usable SDK. - Authentication - setting up Apple ID or API key credentials.