Coding agents running iOS simulator tests on one Mac

Coding agents and scripts run xcodebuild/Simulator tests concurrently on one Mac, and runs start colliding, wedging, and failing unpredictably.

Strong fit Likely class: concurrent simulator contention / shared-state collisions · Updated

Symptom

You have one or more coding agents (plus your own terminals, scripts, and maybe a local CI-like job) running iOS/macOS tests on the same Mac. Individually each run might be fine. Together they start colliding: runs hang, simulators wedge, and failures stop being reproducible.

What it usually looks like

Why it happens / likely failure classes

This is the situation XCSteward was born from. The simulator subsystem is largely shared, per-user, and not designed for several uncoordinated drivers at once:

Concurrency is an amplifier, not the sole cause. Each of these failures can happen in a single run — but multiple agents on one Mac make them frequent and hard to reason about.

Quick checks

# How many simulator-related processes are running right now?
pgrep -lf 'xcodebuild|simctl|Simulator'

# Are multiple runs targeting the same device?
xcrun simctl list devices | grep -i booted

# Is the subsystem still responsive under load?
time xcrun simctl list devices available

If failures cluster when several of these are active at once, treat it as contention, not flaky tests.

Manual mitigations

These work, but they turn into a pile of glue you have to maintain — which is the gap XCSteward aims to fill.

When XCSteward may help

This is the central use case XCSteward is designed for:

If your pain shows up specifically when agents share a Mac, this is the class of failure XCSteward most wants to be tested against.

When XCSteward probably will not help

Common questions

What does "Coding agents running iOS simulator tests on one Mac" usually mean?
It usually points to concurrent simulator contention / shared-state collisions. Coding agents and scripts run xcodebuild/Simulator tests concurrently on one Mac, and runs start colliding, wedging, and failing unpredictably. Start by checking simulator readiness, destination selection, CoreSimulator/simctl responsiveness, and whether another xcodebuild, simctl, or Simulator process is already active before treating it as a test-code failure.
Can XCSteward help with "Coding agents running iOS simulator tests on one Mac"?
This is a strong fit when the failure is operational: simulator readiness, destination resolution, CoreSimulator responsiveness, cleanup, timeouts, or local concurrency. XCSteward may help by making those phases bounded, serialized, and easier to inspect. It will not fix broken tests, code signing, missing runtimes, or vendor image bugs.
What should I check first?
Check whether xcrun simctl commands return promptly, whether xcodebuild can resolve a concrete simulator destination, whether the device is truly ready rather than merely Booted, and whether concurrent agents, scripts, or manual runs are touching the same simulator subsystem.