iOS simulator booted but tests never start

The simulator boots and reaches the home screen, but the app never launches and testing never begins — the run just sits there.

Strong fit Likely class: post-boot readiness / app launch / test bundle install stall · Updated

Symptom

The simulator boots fine — you can even see the home screen — but the run never moves on to launching the app or starting tests. xcodebuild reports the device as booted and then just waits.

What it usually looks like

In XCSteward terms, a run that builds successfully but never really starts the test runner may be reported as runner_bootstrap_failure: runner or environment setup failed before XCTest attached. That is intentionally separate from test_failure, because the failure happened before real test execution.

Why it happens / likely failure classes

Booted is not the same as ready to run tests. There is a window after boot where the simulator is still bringing up services. Stalls here usually come from:

Quick checks

# Don't trust "Booted" — wait for boot to actually complete
xcrun simctl bootstatus <UDID> -b

# Can the device launch ANY app right now? (e.g. Mobile Safari)
xcrun simctl launch <UDID> com.apple.mobilesafari

# Is an install/launch already in flight from another caller?
pgrep -lf 'xcodebuild|simctl|launchd_sim'

# Inspect what the run is doing during the stall
sample $(pgrep -n xcodebuild) 5 2>/dev/null

If simctl launch of a stock app also hangs, the device is not truly ready (or the subsystem is wedged) — that is the real problem, not your test target.

Manual mitigations

When XCSteward may help

This gap between “booted” and “actually ready” is exactly what XCSteward’s readiness model is designed for:

Worth testing against this class of failure when boot succeeds but the run never progresses to tests.

When XCSteward probably will not help

Common questions

What does "iOS simulator booted but tests never start" usually mean?
It usually points to post-boot readiness / app launch / test bundle install stall. The simulator boots and reaches the home screen, but the app never launches and testing never begins — the run just sits there. 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 "iOS simulator booted but tests never start"?
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.