Anka wordmark above two isolated VM windows: macOS 14 with Xcode 15, and macOS 15 with Xcode 16, on one Mac.

Running Several macOS and Xcode Versions Side by Side on One Mac

iOS teams rarely ship against one macOS and one Xcode. A release branch still needs last quarter’s toolchain. A PR branch already moved to the next beta. The question during every hardware planning meeting is the same: do you buy another Mac for each stack, or do you run more than one environment on the machines you already have?

The problem with one bare Mac

A single logged-in Mac with one Xcode.app is simple until the second project lands. Upgrading Xcode breaks the old job. Installing two Xcodes side by side fights path defaults, simulators, and Command Line Tools. Someone updates brew on the shared agent and tomorrow’s green build is yesterday’s mystery. The cost is not only disk. It is every minute spent restoring a mutable machine to a known state.

Why concurrent stacks are hard

When you try setting up Virtualization, each VM needs enough vCPUs and RAM to compile and run simulators without thrashing. Apple Silicon currently enforces a hard ceiling of two VMs per host (Apple’s limitation; Anka Build Cloud nodes on Apple processors are forced to capacity 2).

There is also a problem with reusing a long running VM between teams or jobs and leaving behind files that could cause false positives or outright failures.

You also need isolation of state: different macOS versions, different Xcode installs, different certificates and derived data. That is a template problem, not an install-another-app-in-/Applications problem. The VM needs to be pre-prepared in a consistent state so there are no surprises.

How Anka handles these problems

Anka Virtualization lets you create project-specific macOS VM templates (different guest macOS, different tooling), store them as templates/tags in the Anka Build Cloud Registry, and run multiple VMs on a host within license and Apple limits. This allows for denser packing: several isolated build environments per Mac, including different macOS versions and dependency stacks.

Also, all of our plugins and tools for CI/CD help you spin up ephemeral and on-demand VMs so they are used once per job and then refreshed for the next job that queues up.

Running multiple VMs requires a Flow or Build license (Develop allows only one VM at a time). Templates are created with anka create, sized with anka modify, exercised with anka start / anka run, and versioned with anka push tags so clones share layers instead of full copies.

In fact, Veertu was the first Virtualization company to support stacked images and disk usage optimization, before any other virtualization provider. This allows clones of one VM to not use extra disk space and share underlying layers already present on a host and in the storage registry. Our team is consistently ahead of the curve with features, making Anka the best choice for Enterprises that care about support and optimizations for cost cutting.

How many VMs a host can support

Apple Silicon (ARM)

From Modifying your VM:

  • Maximum concurrent VMs: 2 (Apple limitation).
  • Find host cores C with sysctl hw.physicalcpu (or Apple’s published core count for the chip).
  • 1 VM: about C vCPUs (or C minus 1–2 for host headroom).
  • 2 VMs: about C / 2 vCPUs each.
  • Minimum 4 vCPUs per VM; fewer can make the guest unstable.
  • RAM: 1 VM → totalRAMGB - 2GB; 2 VMs → (totalRAMGB / 2) - 2GB each. Mac Studio guests cap at 60GB RAM per VM (Apple virtualization limit).

Worked examples for a 32GB host RAM column:

HostCores1 VM CPUs2 VMs CPUs eachRAM split (32GB host)
M4 Mac mini108–105–630GB / 14GB
M4 Pro Mac mini1412–147–830GB / 14GB
M4 Max Mac Studio1614–168–930GB / 14GB (max 60GB)
M2 Ultra Mac Studio2422–2412–1330GB / 14GB (max 60GB)

Slight overcommit on a 2-VM Silicon host is possible; Anka does not guarantee stability if you push past the guidance, but generally we see good results.

How to set it up

Size the template

anka modify 26.6 cpu 6
anka modify 26.6 ram 14G
anka show 26.6 cpu
anka show 26.6 ram

Create separate templates (or tags) per stack. For example one guest on macOS 15 + Xcode 26.1, another with Xcode 27 beta. Do not mutate a single golden image between jobs.

anka push --local --tag vanilla 26.6 # required before cloning
anka clone 26.6 26.6-xcode26.1
anka clone 26.6 26.6-xcode27b1
anka start 26.6-xcode26.1
anka run 26.6-xcode26.1 bash -c ". . . Steps to install Xcode in the VM . . ."
anka stop 26.6-xcode26.1
anka start 26.6-xcode27b1
anka run 26.6-xcode27b1 bash -c ". . . Steps to install Xcode in the VM . . ."
anka stop 26.6-xcode27b1

Prefer tagged templates over a mutable host

Tag the source before you clone so Anka can share underlying image layers:

anka push --local --tag v1 26.6-xcode26.1
anka push --local --tag v1 26.6-xcode27b1

Or anka push to the Registry when Build Cloud is in play. Clones do not write back into the source template’s state. A bad job ends in anka delete (or Controller terminate), not a few hours spent reinstalling Xcode on the bare metal.

Run side by side

anka clone 15.6.1-xcode26.1 project-a
anka start project-a
anka clone 15.6.1-xcode26.1 project-b
anka start project-b
anka run project-a xcodebuild -version
anka run project-b xcodebuild -version

Our CI/CD plugins and tools help handle this heavy lifting for you either by requesting a VM instance from our Build Cloud Controller, or directly from a service running on the hosts like Anklet. They also turn the spinning up of VMs into an ephemeral and on-demand process.

When to use it

Use multiple Anka VMs per host when you need two isolated stacks and the host’s RAM can fund them. Use one larger VM per host when a single job is compiler-bound and needs almost all cores. Density is wasted if both VMs are starved.

If you’re interested in a quote or chatting with our team, join us at https://slack.veertu.com or email us at support@veertu.com.

Share this post

anka-and-kubernetes
On-Demand macOS VMs in Azure DevOps Pipelines with Anka
Run macOS VMs in Azure DevOps Pipelines with Anka. Anklet-style on-demand agents are blocked by Microsoft self-hosted pools today; use a registered agent plus per-job Anka VMs.
Read More
AWS + Anka Build Cost Diagramv3
Ephemeral macOS VMs on AWS EC2 Mac with Anka
Run ephemeral macOS VMs on AWS EC2 Mac with Anka and Anklet. Pack more iOS CI capacity per instance, start jobs in seconds, and cut cost.
Read More
Screenshot 2025-01-08 at 2.16
Enterprise macOS GitHub Actions Runners with Anka
Run self-hosted macOS GitHub Actions at enterprise scale with Anka and Anklet: ephemeral Apple Silicon VMs, more control than hosted runners.
Read More
The Anka product ladder: Develop, Flow, Build, and EC2 Mac as four ascending steps, with Crypt, MCP, Anka Scan, and AMI Scan named below
Which Anka Product Do You Actually Need? A Walkthrough of the Whole Lineup
A situation-first guide to every Veertu product: Anka Develop, Anka Flow, Anka Build, AWS EC2 Mac, Anka Crypt, Anka MCP, Anka Scan, and EC2 Mac AMI Scan, including the moment you move from one to the next.
Read More
anka2024v1-1536x768
A Year of Anka: Highlights from 2024
We’re starting a new annual tradition here at Veertu with our A Year of Anka blog posts. We want our customers to know how the product has grown over the past year and think this is a great avenue to do so. Please enjoy and happy holidays from all...
Read More
anka-or-1
Anka vs Orka in 2024
It has been several years since we made our first side by side comparison between Anka and Orka. A lot has changed, and we believe it’s important to make sure the information out there is accurate. We’ll be specifically addressing a newer...
Read More
networking-performancev1
Unlocking Superior macOS VM Network Performance: Introducing Anka's new networking mode for Apple Silicon
Large and complex enterprises using Anka have many different demands, and we have worked to continue to develop innovative technology to meet these demands. Enterprise infrastructure hardware is often on the cutting edge, and they need advanced capabilities...
Read More
gitlab-with-anka
Anka Cloud Gitlab Executor
Veertu’s Anka and the new Anka Cloud Gitlab Executor Veertu’s Anka is a suite of software tools built on the macOS virtualization platform. It enables the execution of single or multi-use macOS virtual machines (VMs) in a manner similar to Docker....
Read More
mac-scan-v1
Real-Time CVE Scanning of your macOS Build Systems
It’s common that an organization’s macOS build system will download thousands, sometimes tens of thousands of third-party dependencies every hour. When building and testing iOS applications, it typically downloads and installs third-party...
Read More
anka-on-silicon-v1
The ONLY Fully Automated Apple Silicon macOS VM Creation Solution
Starting in Anka 3.1 we announced that Anka is now able to fully automate the macOS installation processes, disabling SIP, and enabling VNC — all previously manual steps users had to perform inside o the VM. At the time of writing this article,...
Read More