Half-price Xcode CI on native macOS hardware.
What it is
iogrid iOS Build CI is per-minute Xcode build capacity on home Apple Silicon Macs that have opted in to share idle hours. Each build runs in an ephemeral Tart VM that is destroyed when the build finishes — providers never see your source or your signing certificates.
We are the cheapest no-commit option in the market and the only mainstream iOS CI on truly home hardware. Indie devs save $30–80 per month immediately; teams running large CI matrices save proportionally more.
How it works
Push your project to a signed S3 URL
The coordinator gives you a short-lived signed PUT URL. Tarball your source, push it, and reference it in the workload spec along with a Tart image (Xcode 15 / 16 / 17 preinstalled).
Scheduler picks a Mac provider
Only providers with the Mac platform, Tart installed, and the requested Xcode version eligible see the job. Apple Silicon (M1 / M2 / M3 / M4) is preferred for speed.
Ephemeral VM, archive, upload, destroy
The daemon spawns a Tart VM with no provider-host filesystem access, clones your tarball, runs xcodebuild, archives the .ipa or .xcarchive into your artefact bucket, and destroys the VM at the end.
Pricing
| Per Xcode-minute | $0.04 |
| Lease minimum | None (per-minute) |
| Xcode versions | Provider-installed (15, 16, 17 typical) |
| Network egress | Routed via iogrid mesh — no per-GB tax |
| Artefact bucket | S3-compatible, signed URLs included |
| $GRID discount | 20% off list price |
How we compare
| Vendor | Price / Xcode-minute | Lease minimum |
|---|---|---|
| iogrid | $0.04 / min | None |
| GitHub Actions macos-latest | $0.08 / min | None |
| GitHub Actions macos-latest-large | $0.16 / min | None |
| Bitrise | $0.10 – $0.30 / min | None |
| Codemagic | $0.10 – $0.20 / min | None |
| CircleCI macOS | $0.10 – $0.15 / min | None |
| MacStadium dedicated | $0.05 – $0.20 / min effective | Long-term lease |
| AWS EC2 Mac | $0.018 / min effective | 24-hour minimum ($26 floor) |
AWS EC2 Mac is cheaper per-minute on paper but requires a 24-hour lease ($26 floor), which makes per-build economics worse for any workload under ~11 hours per day.
What you can do with it
Indie iOS app CI
Build, test, archive, and ship to TestFlight on every push. Indie devs save $30–80/month vs GitHub Actions; teams running hundreds of nightly builds save proportionally more.
Cross-platform mobile (Flutter / RN / Expo)
Run the iOS half of your matrix on iogrid and the Android / web half wherever you like. Per-minute billing means a 4-minute Flutter pod-install + build does not pay for unused capacity.
Open-source library CI
Test SwiftPM / CocoaPods packages against multiple Xcode versions without committing to a paid Mac plan. The pre-flight benchmark catches a broken Xcode install on the provider before you are charged.
Get started
Use the SDK directly, or point a GitHub Actions runner label at iogrid for drop-in overflow.
import { IogridClient } from '@iogrid/sdk';
const iogrid = new IogridClient({ apiKey: process.env.IOGRID_API_KEY! });
const w = await iogrid.createWorkload({
type: 'IOS_BUILD',
iosBuild: {
sourceTarballS3Key: 'builds/2026-05-22/myapp-abc123.tgz',
tartImage: 'ghcr.io/cirruslabs/macos-sonoma-xcode:latest',
buildCommands: [
'xcodebuild -workspace MyApp.xcworkspace -scheme MyApp archive',
],
artifactS3Bucket: 'myorg-ios-artifacts',
artifactS3Prefix: 'builds/2026-05-22/',
},
});# .github/workflows/ios-iogrid.yml — burst-overflow to iogrid
jobs:
build:
runs-on: iogrid-ios
container:
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest
steps:
- uses: actions/checkout@v4
- run: |
xcodebuild \
-workspace MyApp.xcworkspace \
-scheme MyApp \
-configuration Release \
-archivePath build/MyApp.xcarchive \
archiveFAQ
- Why is this half the price of GitHub Actions?
- GitHub Actions runs on rented data-centre Mac minis. iogrid runs on home Macs that would otherwise sit idle — the provider only needs the marginal electricity to earn, no capital depreciation, no rack fees. A Mac provider with 4 idle hours per day earns ~$145 / month at our rates, ~15× what they would on a bandwidth-only network.
- Is this isolated enough for proprietary code?
- Each build runs in an ephemeral Tart VM with no access to the provider's host filesystem. The VM is destroyed when the build finishes. Tart is the same technology Cirrus CI uses for their macOS runners. Your source tarball is encrypted in transit and at rest, and only the assigned provider gets a signed pull URL.
- How does this compare to MacStadium leases?
- MacStadium is competitive on $/minute only if you keep the lease saturated 24/7. For bursty workloads (typical CI), iogrid is much cheaper because you pay only when builds run. For 100% utilisation steady-state, a dedicated lease still wins.
- Which Xcode versions are available?
- Whatever providers have installed. Latest 2–3 versions are typically available across the network within days of release. The job spec includes a Tart image label; the scheduler matches to providers with that image cached.
- Can I bring my own Xcode license or Apple ID?
- You do not need to. The provider's Mac is licensed under their own Apple ID; xcodebuild does not require a developer account to compile. For signing, push your distribution certificate as a build secret — it never leaves the ephemeral VM.