# macOS Xcode & Custom Images (https://tenki.cloud/docs/runners/macos-xcode-and-images)

> For the complete documentation index, see [llms.txt](https://tenki.cloud/llms.txt)

Xcode version policy, custom macOS images, per-chip pinning, and Docker-on-macOS support for Tenki macOS Runners.



This page covers everything Xcode- and image-related on Tenki macOS Runners: what's on the default image, how to pin a specific Xcode version, how custom images work, and how to pull private Docker images from inside a macOS job.

Default image [#default-image]

Tenki macOS Runners use a single base image based on **macOS 15 Sequoia**. The image ships with the toolchain we recommend for the majority of iOS / macOS / cross-platform workloads.

If your workflow needs something the default image doesn't ship, we have two paths: **custom labels** (preinstalled toolchain) and **custom images** (your full image, baked by us). Both are available to customers with committed capacity.

Custom Xcode versions and per-chip pinning [#custom-xcode-versions-and-per-chip-pinning]

Need to pin to a specific Xcode (e.g. `xcode-26`, `xcode-18`) or a specific chip generation? We can expose:

* **Per-toolchain labels** (e.g. `tenki-macos-xcode-26`) so workflows can pin to a known Xcode version in `runs-on:`.
* **Per-chip / per-SKU labels** so workflows can target a specific Apple Silicon generation when needed.
* **Parallel availability** of older Xcode versions alongside the latest, so you can roll Xcode forward at your own cadence.

These are scoped during onboarding and require committed capacity, they're a fit for teams who already know their target labels and concurrency profile.

> **Need custom labels?:** Talk to us at hello@tenki.cloud. We'll work with your team to bake the labels you need as you scale with us.

Custom images [#custom-images]

For teams whose iOS / Unity / cross-platform pipelines need a fully custom macOS image, proprietary tooling, internal SDKs, specific Xcode + simulator combinations, we can deploy your image to our fabric.

The custom-image path uses our standard build system (Packer-based, VM compatible) and is available for both Linux x64 and macOS. Custom images are scoped during onboarding and tied to committed capacity.

Docker on macOS [#docker-on-macos]

Yes, a Tenki macOS Runner can pull a Docker image from a **private container registry** you operate. This is a common pattern for Unity iOS pipelines and cross-platform jobs that bundle native dependencies into a container.

You authenticate to your private registry the same way you would on any macOS runner (for example, `docker login` with credentials from GitHub Actions secrets), then pull and run as usual.

Image refresh cadence [#image-refresh-cadence]

When Apple ships a new Xcode (or an App Store submission cutoff lands), we work with custom-image / custom-label customers to schedule the rollout. Older Xcode versions remain available in parallel as long as your team needs them, we do not retire a version without prior agreement.

If you're on the default image and need an Xcode bump fast, email [hello@tenki.cloud](mailto:hello@tenki.cloud) and we'll prioritize the refresh.
