Skip to content
Guide

How to choose a macOS server for iOS CI/CD

Continuous integration for iOS and macOS apps needs a real Mac: Xcode runs only on macOS, and Apple's licence allows macOS only on Apple hardware. This guide covers the versions, hardware, sizing and setup that turn a remote Mac into a reliable build server.

At a glance

The short answer

For App Store builds, choose an Apple silicon Mac with a macOS version that runs the Xcode Apple currently requires. Give it enough memory and disk for two Xcode versions and their simulators, keep a logged-in session for UI tests, and store signing secrets outside your repository.

  • Apple silicon for current Xcode releases
  • A macOS version the required Xcode supports
  • Memory and disk sized for Xcode and simulators
  • A logged-in session for UI tests
  • Signing keys kept out of the repository
  • Xcode pre-installed

Why iOS CI needs a Mac

Xcode, the iOS SDK and the iOS Simulator run only on macOS, and Apple's software licence allows macOS only on Apple-branded computers. A Linux server cannot build and sign an iOS app for the App Store, so every iOS pipeline needs at least one Mac, whether it sits in an office, in a hosted CI service or in a data center.

A remote Mac in a data center has practical advantages over a machine under a desk: a stable network connection, a fixed IP address for webhooks and allow lists, and no office computer that someone switches off at night.

Match macOS and Xcode to Apple's requirements

Apple sets a minimum Xcode and SDK version for uploads to App Store Connect and raises it regularly; in recent years the new minimum has taken effect each April. Since 28 April 2026, uploads must be built with Xcode 26 or later, and Apple has announced that the 27 SDKs will be required from April 2027.

Each Xcode release in turn needs a minimum macOS version: Xcode 27, for example, needs macOS Tahoe 26.6 or later and a Mac with Apple silicon. Before you choose a server, check three things:

  • the Xcode version you need today and the one you will need after the next deadline;
  • the minimum macOS version of that Xcode, listed on Apple's Xcode system requirements page;
  • the macOS versions the server plan offers. Our order form lists the versions you can choose for each macOS plan.

Apple silicon or Intel?

Apple has announced that macOS Tahoe 26 is the last macOS release for Intel-based Macs; macOS 27 runs on Apple silicon only, and current Xcode releases need an Apple silicon Mac. Intel Macs remain useful for testing older macOS versions or x86_64 builds of existing apps, but a new build server for App Store work should be Apple silicon.

Apple silicon also simplifies simulator setup: Xcode downloads arm64 simulator runtimes, which saves disk space, and builds run natively without Rosetta.

At HyperDC, Apple Silicon macOS VPS plans run on Apple silicon hardware. Because Apple's Virtualization framework does not offer nested virtualization for macOS guests, you cannot run further virtual machines inside them; for that, choose a VDS.

Sizing

Sizing a build server

Starting points for one pipeline building a typical iOS app. Measure your own builds and adjust.

CPU 8 or more coresMore cores shorten clean builds and parallel test runs
Memory 16 GB, or 32 GB for parallel simulatorsXcode, the compiler and each simulator need their own share
Disk 100 GB or more of free spaceTwo Xcode versions, simulator runtimes, DerivedData and archives
macOS A version the required Xcode supportsCheck Apple's Xcode system requirements
Access SSH plus a graphical sessionScreen Sharing or VNC for setup, UI tests and keychain prompts
Network A stable connection and a fixed IP addressFor webhooks, allow lists and fast dependency downloads

Rules of thumb, not limits: large projects and parallel jobs need more.

Set up the CI runner

Hosted, self-hosted or Apple's own

Xcode Cloud is Apple's hosted CI service and includes a monthly allowance of compute hours with the Apple Developer Program. A self-hosted runner on your own remote Mac gives you full control of the toolchain, caches that survive between builds and no per-minute billing. GitHub Actions, GitLab Runner and Jenkins all support macOS agents, and fastlane automates the build, test and upload steps.

Keep a logged-in session

UI tests, the Simulator and some keychain operations need a graphical user session. Run the runner as a user agent in a logged-in session rather than only over SSH, enable automatic login so the session returns after a restart, and stop the Mac from sleeping.

Treat a self-hosted runner as a production server

A self-hosted runner executes whatever code a pipeline gives it. Use it only with private repositories you trust, keep macOS and Xcode updated, and limit who can change the pipeline configuration.

Code signing

Code signing on a remote Mac

  1. Use an App Store Connect API key

    Create a team key in App Store Connect and store it in your CI secrets. Apple lets you download the private key only once.

  2. Keep certificates out of the repository

    Store certificates and profiles encrypted, for example with fastlane match, or import them from CI secrets.

  3. Use a temporary keychain per job

    Create a keychain for the job, import the certificate, and delete the keychain when the job ends.

  4. Let Xcode sign automatically

    xcodebuild can use the API key for automatic signing on a machine without a signed-in Apple Account.

  5. Rotate and revoke

    Revoke keys that may have leaked and review regularly who has access to signing.

Apple's licence in brief

Apple's macOS licence allows macOS only on Apple-branded hardware and limits a Mac to two additional macOS instances in virtual machines, for purposes such as software development and testing. It also sets terms for leasing Macs for development and continuous integration work, including a minimum lease period of 24 consecutive hours. The licence text on Apple's website is binding, so read it for your own use case.

Servers for your build pipeline

  • macOS VPS Hosting

    Designed for macOS-based applications and development projects, our macOS VPS Hosting lets you host your macOS projects securely.

    Starting from $11.18/mo
  • macOS VDS Hosting

    Mac VDS hosting is a virtual dedicated server hosting that handles the macOS operating system, also known as macOS VDS hosting. It enables users to run macOS-based applications, xCode development, software, and services in a virtualized environment by authorising them to lease or rent virtual servers that run on macOS. Whether for personal or business use, you need a web hosting service to get your ideas online.

    Starting from $1.00/mo
  • Linux VPS Hosting

    Linux VPS Hosting grants you more control and freedom with virtual private servers, particularly suited for Linux-based projects, offering excellent performance and customization.

    Starting from $3.33/mo

More guides

VPS vs VDS vs dedicated server

What each term means, how to tell when you have outgrown a VPS, and when bare metal is worth it.

Learn more

Move a website without downtime

A step-by-step plan for files, databases, DNS, SSL and email.

Learn more

DNS basics for a new domain

Nameservers, records, TTL and the email records every domain needs.

Learn more

Secure a new Linux server

The first-hour checklist: updates, SSH keys, a firewall and backups.

Learn more

Choose a data center location

How distance becomes latency, how to measure it and what data rules mean for location.

Learn more
FAQ

Frequently asked questions

Can I build iOS apps on a Linux or Windows server?

No. Xcode and the iOS SDK run only on macOS, and Apple's licence allows macOS only on Apple hardware. Linux servers are still useful in the same pipeline for back-end services, Android builds and artifact storage.

Which macOS version should my build server run?

A version supported by the Xcode you need, as listed on Apple's Xcode system requirements page. Keep the version the same on all build machines so that builds are reproducible.

How do I keep the disk from filling up?

Remove old Xcode versions you no longer need, delete unavailable simulators with xcrun simctl delete unavailable and clear old DerivedData folders on a schedule. Plan space for the next Xcode before Apple's next deadline.

Do I need a graphical session for CI?

For command-line builds, SSH is enough. UI tests, the Simulator and some keychain prompts need a logged-in graphical session, so set up automatic login and use Screen Sharing or VNC for setup.

Can I install other Xcode versions on a HyperDC macOS server?

Yes. You have an administrator account, so you can install the Xcode versions you need from Apple's developer website and switch between them with xcode-select.

Questions before you order?

Send us a message and our team will help you choose the right service.

Generovat heslo

Please confirm