Skip to content
xcross
Documentation menu

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.

RequirementPurposeWhere to get it
FlutterYour app’s SDK; xcross reuses its engine artifactsflutter.dev
Swift toolchainCompiles SwiftPM plugins and runner glue codeswift.org/install
LLVM (clang, clang++, llvm-ar, ld64.lld on PATH)Compiles and links the iOS Mach-O binariesreleases.llvm.org
Python 3 + pymobiledevice3Device communication and the iOS 17+ RSD tunnelpymobiledevice3 on GitHub
A complete Xcode.xipProcessed once by xcross sdk install into a private Darwin Swift SDKxcodereleases.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 run can 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

ESC