Developer tools#Deployment

omarchy-apple-dev: Build and deploy iOS apps on Linux without a Mac

MIT-licensed scripts for Omarchy Linux that build SwiftUI and Flutter iPhone apps without Xcode or macOS, install them over USB and package App Store builds.

Project facts

GitHub Ecosystem
Repositorygithub.com/joshuaswarren/omarchy-apple-dev
License
MIT
Language
Python
Stars
1,362
Data checked
2026-10-10

Snapshot figures reflect the check date and may change over time.

Most iPhone developers assume the work starts with a Mac and Xcode. omarchy-apple-dev is a set of open-source scripts by Joshua Warren that removes that assumption for Omarchy Linux, an Arch-based distribution. It builds SwiftUI and Flutter apps, installs them on an iPhone over USB with LLDB debugging, and packages a .ipa that App Store Connect accepts. In early October 2026 the author posted on X that he had built an app on Omarchy, submitted it to the App Store, and stopped it at a breakpoint on his iPhone, with no Mac involved.

Core features

  • USB install and debugging: device-run.sh pairs the iPhone over USB, installs and launches the app, and with --lldb attaches LLDB for breakpoints. It runs in userspace and needs no root.
  • App Store packaging and offline checks: ship.sh builds a release .app, compiles the AppIcon set with a Linux actool, signs with rcodesign, and checks the bundle layout, Info.plist keys, Mach-O architecture and provisioning profile. Any failure stops the build.
  • Upload to App Store Connect: With an API key set, ship.sh --upload registers the bundle ID, creates a distribution certificate and uploads the build. The README reports that builds made entirely on Linux show as VALID in App Store Connect.
  • Flutter release builds: flutter/build.sh produces an unsigned Runner.ipa, which sign-dev.sh then signs with a development profile. This path covers release mode only, with no debug mode, hot reload or simulator.
  • Two install modes: full uses the complete SDK from the Xcode download and supports Swift, SwiftUI, Objective-C, C and C++, including extensions, widgets and macOS apps. no-xcode skips the Xcode archive. It offers a short list of system frameworks and a subset of SwiftUI, and the project labels it experimental. The script remembers your last choice in ~/.config/omarchy-apple-dev/mode.
  • Real projects: The repo documents builds of IceCubesApp, NetNewsWire and Mastodon. NetNewsWire, with its extensions and 15 frameworks, passed App Store Connect processing.

Typical use cases

  • An independent developer with only a Linux workstation who wants to build a small SwiftUI tool and test it on their own iPhone.
  • A Flutter team that already works on Linux and needs a release build for iPhone, signed and checked on the same machine.
  • A maintainer who wants to test App Store packaging on Linux and catch bundle-layout problems early with the offline validator in ship.sh.

Quick start

You need an Omarchy machine, a USB cable and a free Apple ID. The README’s first steps look like this:

git clone https://github.com/joshuaswarren/omarchy-apple-dev
cd omarchy-apple-dev
./install-toolchain.sh
# If the script stops at the SDK step, download the matching Xcode.xip from developer.apple.com, then:
XCODE_XIP=/path/to/Xcode.xip ./install-toolchain.sh
xtool new HelloOmarchy
cd HelloOmarchy
xtool dev run

The README’s first app flow ends with xtool dev run. To install an existing app on a phone, plug in the iPhone, tap Trust, and run ./device-run.sh.

Summary

This project suits developers who have a Linux machine and want to write SwiftUI tools or ship Flutter release builds, and anyone curious about how the iOS toolchain fits together. The code is Python and shell under the MIT license. As of October 10, 2026, the repository has about 1,362 stars and was last pushed the same day.

The limits matter. The project still depends on Apple’s Xcode download, and the SDK must match the Swift version: the README pairs Xcode 27 with swift-bin 6.4. Wireless deployment is blocked on iOS 26 for Linux-only setups, so USB is the only route. TestFlight and App Store distribution need a paid developer account. The repository gives no legal opinion on Apple’s license terms, so check those yourself before relying on the approach. Finally, this is a personal project whose verification notes date from October 3, 2026, and its future depends on its author and on upstream xtool. For the comparison with the Mac route and the licensing debate, read Building an iPhone app without a Mac: how far Linux gets you.