
If you are weighing Figment's managed tiers against a self-managed M-series rental, the managed plans will always be more expensive per month. The real question is whether the included work — CI setup, backups, monitoring, and a scheduled block of monthly support — is worth the gap. For some teams it clearly is; for others it clearly isn't. This page draws the line, with a worksheet you can walk through today.
Start the conversation at /mac-hosting/start. Physical M-series plans are request-based, so bring your runner needs and storage estimate.
Figment publishes four self-service tiers and two managed tiers. The entries below reflect current retail offers; the exact M-series chip, RAM and disk on physical plans are confirmed in the quote.
| Plan | Monthly price | Hardware | CI setup | Backups | Monitoring | Support |
|---|---|---|---|---|---|---|
| Virtual Intel macOS | $29 | 2 vCPU, 8 GiB RAM, 80 GiB disk, Intel | — | — | — | — |
| Physical i3 Mac | $49 | Intel i3, request-based | — | — | — | — |
| M-series Mac | from $95 | M-series, chip/RAM/disk confirmed in quote, request-based | — | — | — | — |
| Managed Build Mac | $249 | One M-series Mac | Included | Included | Included | 30 min/month |
| Managed Mac Team | $999 | Two M-series Macs + two CI runners | Team setup included | Included | Included | 1 hr/month |
| Enterprise | Contact us | Fleets up to thousands, subject to quoted capacity and delivery | Negotiated | Negotiated | Negotiated | Negotiated |
The $29 virtual Intel macOS VM is a real macOS environment on Intel virtualization: it runs compatible Intel toolchains, including Xcode 26 or earlier per Apple's porting-to-Apple-silicon guide, and can cross-compile and sign supported targets. It is not Apple silicon, has no GPU acceleration or audio, and cannot run Xcode 27 or ARM-only binaries. Access is through the browser console. Choose an M-series plan when you need native arm64 execution, visionOS, Xcode 27, GPU work, or more RAM and concurrency.
A few practical notes before comparing costs:
Compared to the $95 M-series entry price, Managed Build Mac adds $154/month for one host, and Managed Mac Team adds $809/month for two hosts plus two CI runners ($999 − 2×$95). That delta buys concrete work:
CI setup. Figment configures the pipeline on the Mac — connecting runners to your CI service, provisioning a build user, installing the Xcode and command-line tools you specify, wiring triggers to your repository. If an in-house DevOps hour costs $100–$150 and a clean macOS runner typically takes 6–10 hours to set up well, that is $600–$1,500 of one-time labor, or $50–$125/month amortized over a year. If you churn projects or do not have macOS CI expertise on staff, the managed setup pays for itself.
Backups. Self-managed macOS has no automated backup unless you build one. Rebuilding a signing keychain, lost provisioning profiles, or a corrupted derived-data cache from scratch burns real hours. The managed plans include backup configuration and a support-assisted restore path.
Monitoring. Alerting on disk pressure, runner health and connectivity catches the quiet failures that make a CI host "feel slow" for two days before someone notices the queue has grown to 400 jobs.
Scheduled support time. 30 minutes per month on Managed Build Mac and 1 hour per month on Managed Mac Team of direct Figment time. It is a scheduled allocation, not unlimited support — but it is where recurring Xcode toolchain upgrades, runner config changes, and macOS updates get handled without you reading release notes.
Managed Mac Team adds the "team setup" on top: coordinating two Macs and two CI runners so concurrent jobs land on separate hardware from day one.
Work through this in order. Stop at the first row that fits. The Xcode/host pairings follow Apple's Xcode system requirements.
1. Which Xcode do you need to RUN on the host?
Xcode 27.x → Host must be Apple silicon (macOS Tahoe 26.6+).
VM and i3 are out; use M-series.
Xcode 26.x → Apple silicon or a compatible Intel Mac on the
listed macOS pair. The $29 Intel VM can fit if the
pair is compatible; otherwise use M-series.
Xcode 16.4 → Intel or Apple silicon on macOS Sequoia 15.3 - Tahoe 26.1.x.
Note: Xcode 27 can still target x86_64 as a build architecture,
but Xcode 27 itself does not run on Intel. If you only need to
SHIP for Intel, that is a build-setting question, not a host one.
2. How many concurrent build jobs do you need?
1 job → one Mac is enough.
2+ concurrent → two Macs or two runners.
3. Do you have in-house capacity for macOS CI (runner config,
Xcode channel management, keychain and backup scripting)?
YES → self-managed M-series from $95 is worth evaluating.
NO → go to 4.
4. How many Macs?
1 → Managed Build Mac, $249/month.
2 → Managed Mac Team, $999/month.
5+ → request an enterprise quote; fleet pricing is negotiated.
5. Do you need concurrent jobs on separate hardware today?
YES → Managed Mac Team ($999) delivers two Macs + two runners,
configured together.
NO → start on Managed Build Mac ($249) and upgrade later.
The managed premium is not always worth paying. M-series from $95 is the right call when:
For those situations, request an M-series configuration quote and bring runner, Xcode channel and storage requirements.
Run this on day one, after your runner reports in, to confirm Xcode is where you think it is and your project builds on the host. Supply your own project path, scheme, and workspace. Treat this as an unexecuted example, not a benchmark.
#!/usr/bin/env bash
set -euo pipefail
SCHEME="YourSchemeName" # your real Xcode scheme
PROJECT_DIR="path/to/YourApp" # your project root (contains .xcodeproj)
PROJECT_NAME="YourApp" # .xcodeproj basename
DERIVED="/tmp/ci-verify-$(uuidgen)"
echo "=== Xcode version ==="
xcodebuild -version
echo "=== Clean archive (unsigned smoke check) ==="
xcodebuild archive \
-project "${PROJECT_DIR}/${PROJECT_NAME}.xcodeproj" \
-scheme "${SCHEME}" \
-configuration Release \
-archivePath "${DERIVED}/${PROJECT_NAME}.xcarchive" \
-derivedDataPath "${DERIVED}" \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO
echo "=== Archive present ==="
test -d "${DERIVED}/${PROJECT_NAME}.xcarchive"
echo "OK"
set -euo pipefail makes the script stop on the first failure, so a failed build cannot be mistaken for a passing run. Measure wall time with your own CI service's job timing, not an ad-hoc time wrapper that captures setup overhead. Signing, notarization and TestFlight upload belong in later stages with secrets pulled from your CI secret manager, not from shell history.
The decision reduces to two variables: how many Macs and how much in-house macOS CI capacity.
Start at /mac-hosting, or go directly to /mac-hosting/start to request a configuration quote and agree an evaluation before purchase.
Related reading: