xos

Ship iOS apps from the machine you already own.

xOS Tools compiles, links, signs and installs iOS applications from Linux and Windows. Real apps, real phones, no Mac anywhere in the path.

$ xos app --project MyApp.xcodeproj --target MyApp
linked MyApp.app exit 0
$ xos ship --target MyApp --sign-dir signing
signed, packaged MyApp.ipa exit 0
$ xos install --udid $UDID build/MyApp.app
installed exit 0
$ xos debug --udid $UDID --bundle-id com.example.app
running as pid 8011 exit 0

how

Four commands, source to phone

Each depends on the one before it, and each exits with a code that says what kind of thing happened, so a pipeline never has to read English to decide what to do next.

  1. app

    Compiles and links the project, including a full CocoaPods graph and the shell build phases React Native relies on.

  2. ship

    Signs with your certificate and profile, and packages the result.

  3. install

    Puts it on a device over USB, over the network, or through a tunnel.

  4. debug

    Launches it, follows the log, and collects the crash report if it falls over.

who

Who it is for

Teams on Linux CI

Build and test on the runners you already pay for, instead of keeping Macs alive for one step of the pipeline.

Developers without a Mac

Build and run on a device from the machine you own, rather than buying hardware for permission to compile.

Automated agents

A distinct exit code per kind of failure, and a written contract saying what may and may not be relied on.

remote

The build can be in the cloud while the phone is on your desk

A small agent runs next to the device and does the device work locally, answering requests from wherever the build happens to be. The connection is encrypted and authenticated before a single request is read, so it needs no tunnel wrapped around it.

Screenshots, crash reports, the system log, install and launch all work across that link.

supply

What is in the box

xOS Tools ships no Apple software. You supply the iOS SDK from your own copy of Xcode, and your own signing material from your own developer account. The tool reads the SDK from a path you give it: it never downloads it and never bundles it.

We shipYou supply
The xos toolchainThe iOS SDK, from your Xcode
An open source linker that targets Apple platformsYour signing certificate and profile
Open source libraries, all permissively licensedYour device and developer account