Local iOS CI · for macOS
MacOn turns the Mac on your desk into a full iOS pipeline — watch a repo, build, test across simulators, and ship to TestFlight. Free, fast, and private.
Requires macOS 14 or later · Bitbucket & GitHub
Everything a hosted CI does for iOS — running on hardware you already own.
No metered build minutes, no queue, no cloud VM spin-up. Warm caches make it the fastest CI for a single dev.
Watch a branch or open PRs. Poll on a timer, or receive webhooks for instant, push-based builds.
Bitrise-style workflows: before_run chains, triggers, env, run_if, and always-run steps — defined in your repo.
Fan a step out across device × OS combinations. UI-test on every simulator that matters, in one push.
fastlane with automatic signing and App Store Connect API keys. Merge to main, upload a build — done.
Install as a launchd service that starts at login and restarts on crash — ideal for a dedicated or EC2 Mac.
Homebrew
One tap, one install. Then bootstrap the toolchain and start watching.
1 · Tap & install
2 · Check the machine
3 · Watch & build
4 · Run it unattended
macon.yml
Composable workflows and a test matrix — the same file runs in the app or the CLI.
Everything you need to set up, script, and run MacOn.
The full guide, right here — install, macon init, pipelines, the test matrix, providers, and TestFlight.
Every command: init, sims, watch, service, run, auth, trigger modes, and recipes.
Prefer the source? Code, releases, the Homebrew tap, and the raw Markdown docs.
Open on GitHub ↗The things people ask before turning their Mac into CI.
Yes. It runs on hardware you already own, so there are no per-minute build charges — and it's open source.
No. MacOn is additive. A common setup is MacOn for fast PR and test builds, with a hosted CI (or an always-on MacOn service) handling release builds. Your existing Bitrise/Xcode Cloud setup keeps working untouched.
Any Apple platform — iOS, iPadOS, watchOS, tvOS, and visionOS — plus macOS. The first four run on simulators (managed with macon sims); macOS builds run natively.
Both. Watch a branch or open pull requests, and choose polling or instant webhooks — per pipeline.
While it's watching, yes. For unattended use, install it as a launchd service (macon service install) on an always-on machine — even a cloud EC2 Mac — so it starts at login and restarts on crash.
It uses a team-only trust model. Secrets live in the macOS Keychain, never in your repo, and your code is only ever checked out on your own machine.
Yes — MacOn runs your fastlane lanes, so a beta lane with an App Store Connect API key uploads to TestFlight just like it would anywhere else.
macOS 14 or later and Xcode. Run macon init and it checks the rest of the toolchain (fastlane, SwiftLint, simulators…) and installs what's missing.
Free to run, yours to control.