Boot an iOS Simulator with xcrun simctl

simctl boots, shuts down, and installs apps on Simulator devices entirely from the shell — no Xcode required.

macOSsimctliossimulatorLow risk
Run `xcrun simctl boot "iPhone 16"` to boot a device headlessly, then `open -a Simulator` to show the window.

01Command

Command
$ xcrun simctl list devices available && xcrun simctl boot "iPhone 16" && open -a Simulator

02What it does

simctl is the undocumented-in-Xcode-GUI powerhouse behind the Simulator app: list devices available shows bootable UDIDs and names, boot starts one in the background (useful for headless UI tests with xcodebuild), and install/launch push an .app bundle onto it. The device name must match exactly — copy it from simctl list or use the UDID instead. Every booted simulator keeps consuming RAM until you run simctl shutdown or `xcrun simctl shutdown all`.

03Risk

RiskLow risk
RequirementsXcode with iOS Simulator runtimes
!Warning: Booted simulators accumulate memory and disk snapshots — shut them down or erase with `xcrun simctl erase` when done.

04Undo

Undo
$ xcrun simctl shutdown "iPhone 16"

05Sources

  • simctl(1) — macOS man page
    manpagez · technical · 2026-09-17
    Evidence: Documents simctl list, boot, shutdown, and install subcommands for controlling iOS Simulator devices.

Last verified: 2026-09-17 · Category: Developer