Skip to content
xcross
v2.0.6What's new in 2.0

Run and debug cross-platform(Flutter / CMP) iOS apps from Windows or Linux.

Build, install, launch and debug on a real iPhone. No Mac. No Xcode.

>irm https://raw.githubusercontent.com/arxdeus/xcross/main/install.ps1 | iex
$curl -fsSL https://raw.githubusercontent.com/arxdeus/xcross/main/install.sh | sh
Go to Flutter guideGo to Compose guide
xcross - windows powershell
> xcross flutter run
✓ Compiling Dart kernel 6.1s
✓ Compiling Runner 2.3s
› Device iPhone 15 Pro 00008130-000A2D9E0299001C
✓ Installing to device 4.6s
› App com.example.myapp debug/JIT, hot reload
✓ Debugger attached
› Hot reload ready — r reload · R restart · q quit
✓ Reloaded 0.3s
>
xcross - linux bash
> xcross compose run --watch
✓ Compiling Kotlin sources 9.8s
✓ Building shared.framework 11.2s
✓ Compiling Runner 1.4s
✓ Assembling ComposeApp.app 0.6s
› App com.example.compose native, attached via CoreDevice
› Device iPhone 15 Pro 00008130-000A2D9E0299001C
› Watching Kotlin sources — press r to rebuild and restart
› Changed 1 file — rebuilding
>
0Macs required
2frameworks, one CLI
4host builds, x64 + ARM64
iOS 17+over USB or Wi-Fi
Flutter hot reloadCompose MultiplatformWindows x64 / ARM64Linux x64 / arm64WSL + usbipdUSB & Wi-FiFree Apple IDApp Store Connect keysSwiftPM pluginsSwiftUI macrosOffline signingVS Code · JetBrainsBreakpoints · DevToolsiOS 17+

How it works

Two frameworks. One tool. Zero Macs.

xcross reimplements the iOS build, signing and CoreDevice launch pipeline in pure Dart, on top of the official Swift and LLVM toolchains.

Flutterhot reload · DAP
Compose MPfast rebuild loop
xcross Windows · Linux
iPhone · iOS 17+

Capabilities

Everything you need on the device.

Hot reload for Flutter, fast restart for Compose

Flutter gets the full r / R loop. Compose gets --watch: rebuild, reinstall, relaunch, with cached Kotlin/Native builds.

Native on Windows & Linux

x64 and ARM64. No VM, no remote Mac. WSL works too with usbipd-win.

Real debugging

Breakpoints and DevTools in VS Code or JetBrains through DAP.

Your Apple ID, even offline

A free account works. Signing happens in-process, and after the first run it works without a network.

USB or Wi-Fi

Pair once over a cable, then go wireless.

ScopeDevice runs on iOS 17+. Flutter builds are debug (JIT), release still needs a Mac.

Why?

Quick start

Four commands to a running app.

  1. 1

    Set up the host

    $xcross setup
  2. 2

    Extract the iOS SDK (once)

    $xcross sdk install ~/Downloads/Xcode.xip
  3. 3

    Sign in with an Apple ID

    $xcross auth --apple-id you@example.com
  4. 4

    Tunnel + run

    $xcross tunnel && xcross flutter run
  1. 1

    Set up the host + Kotlin/Native

    $xcross setup && xcross compose setup
  2. 2

    Extract the iOS SDK (once)

    $xcross sdk install ~/Downloads/Xcode.xip
  3. 3

    Sign in with an Apple ID

    $xcross auth --apple-id you@example.com
  4. 4

    Tunnel + run

    $xcross tunnel && xcross compose run --watch
Free and open source

Ship to iPhone from the machine you already have.

One installer, one Xcode archive, one free Apple ID. Then hot reload on a real device.

>irm https://raw.githubusercontent.com/arxdeus/xcross/main/install.ps1 | iex
$curl -fsSL https://raw.githubusercontent.com/arxdeus/xcross/main/install.sh | sh
ESC