iOS Build CI

Half-price Xcode CI on native macOS hardware.

Real Mac runners with Xcode preinstalled. Tart-managed VMs reset between jobs. $0.04 / Xcode-minute — ~50% cheaper than GitHub Actions, no 24-hour lease minimum.

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

Step 1

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).

Step 2

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.

Step 3

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 minimumNone (per-minute)
Xcode versionsProvider-installed (15, 16, 17 typical)
Network egressRouted via iogrid mesh — no per-GB tax
Artefact bucketS3-compatible, signed URLs included
$GRID discount20% off list price

How we compare

VendorPrice / Xcode-minuteLease minimum
iogrid$0.04 / minNone
GitHub Actions macos-latest$0.08 / minNone
GitHub Actions macos-latest-large$0.16 / minNone
Bitrise$0.10 – $0.30 / minNone
Codemagic$0.10 – $0.20 / minNone
CircleCI macOS$0.10 – $0.15 / minNone
MacStadium dedicated$0.05 – $0.20 / min effectiveLong-term lease
AWS EC2 Mac$0.018 / min effective24-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 \
            archive

FAQ

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.