Push your code. GitHub's own free Mac builds, signs, and uploads your app to TestFlight. You don't need Xcode. You don't need a $699 MacBook. You don't need a $20–100/month Mac rental just to click "Archive" once. Macless is $19.99/month, or $299 once and it’s yours. Same pipeline that shipped my own app, Citolex, to the App Store.
$ git push origin main → GitHub spins up a macOS build machine (free, public repo) → signs the app, archives it, exports a .ipa → uploads to TestFlight done. no Mac involved, nothing spent.
A real run of this pipeline's build steps, on GitHub's own macOS servers, checkout, Xcode, dependencies, and a genuine 6m58s archive step, all real, all green. (This specific run stops at an unsigned archive since it's a public demo repo with nobody's real Apple certs in it. The signing and TestFlight upload steps are the same workflow, just with your own signing details filled in.) See the actual log or read the real workflow file.
Normally, shipping an iOS app means owning a Mac (starting around $699) or renting one in the cloud (usually $20–100+ a month) just to run Xcode, Apple's own app-building software, long enough to sign and upload a build. That's $699 for a step that takes a few minutes. This replaces it with an automated workflow that runs on GitHub's own servers (a free feature called GitHub Actions) and does the same steps, for free, because GitHub doesn't charge for its macOS build servers on public repositories.
It's not just a workflow file you copy and hope works. I've run every piece of this against Apple's real signing and build systems. The changelog has the dated, specific bugs it caught along the way, not just a claim that it's tested.
This is the exact pipeline behind Citolex. A full app with native Swift plugins that went from me wondering if I could even ship it, to submitted for App Store review, without a single Mac. Every fix in the troubleshooting doc is one this pipeline actually needed. → citolex.com
Not ready to buy? Start free — no purchase, no account.
Signing Doctor is a free, standalone tool pulled straight out of this pipeline's own validation step. Paste in your signing setup and it tells you exactly why it's failing, in plain English, on any project, any CI.
Rejection Doctor — free. Paste in an App Store rejection message and it decodes what Apple's actually asking for, across 57 rejection categories, plus a starting point for your appeal.
The honest version, not the marketing version — every row below links to a full, sourced breakdown.
| Needs a Mac? | Handles signing setup? | Cost | |
|---|---|---|---|
| Macless | No | Yes — the wizard walks you through it and stores it for you | $19.99/mo, or $299 once and you keep it |
| Codemagic / Bitrise | No | Real reviewers flag rough signing setup and documentation | Per-build or monthly |
| Xcode Cloud | Yes, to configure | Only from inside Xcode | Requires owning a Mac first |
| fastlane / free GitHub Actions | No | DIY — cert and profile errors are yours to debug alone | Debugging time |
| Fiverr gigs | No | No — needs an already-signed build from you first | Per submission, forever |
Macless vs. Codemagic & Bitrise →
Macless vs. Xcode Cloud, fastlane & free Actions →
Macless vs. a Fiverr gig →
Coming from Ionic Appflow? →
No. No Mac to build or sign — and no iPhone or iPad to see it running, either. The pipeline includes a built-in Simulator-preview workflow: it builds your app and boots an iOS Simulator right on GitHub's own servers, then hands you a screenshot, so you can check that it actually launches and looks right without owning any Apple hardware. (A real device is still the last word before you actually submit — camera, push notifications, and true on-device performance can't be fully checked in a Simulator — but it's no longer something you need just to get started.)
Any of them. The build itself runs on GitHub's servers, not yours — your machine is just where you click buttons in a browser tab. A Chromebook works. A school or library computer works. An old Windows laptop that couldn't run Xcode if its life depended on it works. Even your phone's browser works. If it can load GitHub.com, it can ship your iOS app.
No. You're using GitHub's own free macOS minutes to build your own app, on your own repo, under your own Apple Developer account — exactly what they're for. This isn't reselling compute or running anyone else's builds.
Yes — the $99/year Apple Developer Program fee is separate and unavoidable. This removes the Mac requirement, not Apple's own fee.
Those are solid, polished services, and if you'd rather pay per build or a monthly fee for a fully managed GUI, they're a fine choice — but it's worth knowing what their own users flag most, in their own reviews: "very poor documentation for code signing" on Codemagic (a Capterra reviewer), and "setting up Apple builds for testing on my device took me more than a couple of hours" on Bitrise (a G2 reviewer) — the same signing setup this pipeline's troubleshooting doc, and its wizard, already have fixes for. This is different: you're paying for the actual pipeline itself — $19.99/month, or $299 once and nothing after — and it runs on GitHub's own free macOS minutes on public repos. The pipeline lives in your repo, so cancelling doesn't stop your builds. It's for people who'd rather own the setup than keep renting access to someone else's. Full comparison here if you want the honest breakdown of when each one actually makes sense.
Appflow shuts down December 31, 2027, and Ionic's already stopped selling it to new customers. If that's your current CI, here's what to actually weigh before picking a replacement, including the one-time-cost option most "Appflow alternative" writeups don't mention.
Those gigs upload an already-signed .ipa you hand them, signing itself is listed as your problem to solve first on most of them. Macless is the part before that, it sets up the actual build and signing pipeline from your source code, so you have a signed build to upload in the first place, and every update after this one ships the same way with a normal git push — or a click through the wizard. Full comparison here if you want the honest breakdown of when each one actually makes sense.
Xcode Cloud works if you already own a Mac — full comparison here — but setup happens inside Xcode itself, so it doesn't help if you don't have one. It's also worth knowing that even developers who do own a Mac report real reliability trouble with it on Apple's own developer forums — one thread, titled "Xcode Cloud is literally broken for 2 months now," has developers reporting builds failing with network errors most of the time. fastlane's match is free and handles signing well if you're willing to learn it — though even fastlane's own maintainers have called certificate expiry "one of the few fundamental signing features fastlane has not yet solved." Free GitHub Marketplace actions can build and sign for free too, they just don't upload to TestFlight, and they don't stop you from hitting the same certificate and provisioning profile errors this pipeline's troubleshooting doc already has fixes for. This is for someone with no Mac access at all who doesn't want to spend a weekend finding that out. Full comparison here if you want the honest breakdown of what the free route skips.
Yes. None of the workflows trigger on pull requests, only on pushes to your own main branch or a manual run, both of which require write access to your repo. The usual risk with public-repo CI is a stranger's pull request tricking a workflow into leaking secrets — these workflows are never triggered by pull requests, so that doesn't apply. Every workflow also runs with read-only repo permissions by default. Your certificates sit in encrypted GitHub secrets, never in the repo or the build logs.
The signing and CI steps work no matter what generates your iOS project — Capacitor (a tool that turns a web app into a native iOS/Android app) is just what my example app used. The guide covers plain Xcode projects too.
Private repos work exactly the same way — nothing about the pipeline changes. The only difference is GitHub's free-minutes allowance: public repos get unlimited free macOS build minutes, private repos get a monthly allowance before you're billed per minute past it (still usually cheaper than a rented Mac). Either way, your signing certificates and credentials are stored as encrypted GitHub secrets — they're never exposed in your repo or build logs, public or private.
There's a Android pipeline included in every plan — the same GitHub Actions workflow, already run against real Android build failures, just without the iOS signing and build steps you'd never use. Android builds never needed a Mac to begin with, so this one's priced for that.
Email me. The troubleshooting doc covers the errors this pipeline has actually produced, and if you can't get a build out within 30 days, I'll refund you.