Requirements
The five host ingredients xcross needs on Windows or Linux, the Apple drivers Windows needs on top, 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.
Apple Mobile Device Support
Windows has no usbmuxd of its own, so USB access to the iPhone goes through Apple’s own drivers and services. Install both of these once:
| Package | Purpose | Where to get it |
|---|---|---|
| iTunes | Installs the Apple Mobile Device Support driver and the Apple Mobile Device Service, which pymobiledevice3 talks to over USB | iTunes for Windows (64-bit) |
| iCloud for Windows | Installs Apple Application Support / Internet Services, used for Apple ID sign-in and device pairing | iCloud installer |
WarningUse the installers linked above, not the Microsoft Store versions. Store builds run sandboxed, so their drivers and support libraries are not reachable from outside the package and the device never shows up. If a Store version is already installed, remove it before running these installers.
You do not have to sign in to iTunes or iCloud - only the drivers and support libraries are needed. Reconnect the iPhone after installing and tap Trust This Computer.
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. - Initial wireless pairing can be bootstrapped over USB on every supported iOS version. Cable-free device-initiated pairing through Settings > Privacy and Security > Developer Mode > Paired Devices requires iOS 27 or later. See Run over Wi-Fi.
- 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.