Environment
- macOS 26.6.2 (25G83)
- Xcode 27.0 (27A266a), iOS 27.0 simulator runtime (24A434)
@react-native-community/cli 20.2.0; runOnSimulator is unchanged on main (21.0.0-alpha.1)
react-native 0.87.1
- Node 22.22.3
Description
When the target simulator is shut down, run-ios builds, installs and launches the app, but DeviceHub never shows the simulator's window. The simulator runs headless, and DeviceHub keeps showing whatever device window was already open, if any. When the simulator is already booted, its window opens as expected.
runOnSimulator opens devices://device/open?id=<udid> and then runs xcrun simctl boot. DeviceHub opens a window for a device that is already booted, and also for one that stays shut down, but not for a device that starts booting right after the deep link is opened. Booting first and opening the deep link afterwards shows the window.
Reproducible Demo
With a shut-down simulator that has no DeviceHub window open:
UDID=<shut-down simulator UDID>
# What run-ios does today: the simulator boots, no window opens
open "devices://device/open?id=$UDID"; xcrun simctl boot "$UDID"
xcrun simctl shutdown "$UDID"
# Boot first, then open: the window opens
xcrun simctl boot "$UDID"; open "devices://device/open?id=$UDID"
In any React Native app, npx react-native run-ios --udid <shut-down simulator UDID> launches the app on a headless simulator.
Environment
@react-native-community/cli20.2.0;runOnSimulatoris unchanged onmain(21.0.0-alpha.1)react-native0.87.1Description
When the target simulator is shut down,
run-iosbuilds, installs and launches the app, but DeviceHub never shows the simulator's window. The simulator runs headless, and DeviceHub keeps showing whatever device window was already open, if any. When the simulator is already booted, its window opens as expected.runOnSimulatoropensdevices://device/open?id=<udid>and then runsxcrun simctl boot. DeviceHub opens a window for a device that is already booted, and also for one that stays shut down, but not for a device that starts booting right after the deep link is opened. Booting first and opening the deep link afterwards shows the window.Reproducible Demo
With a shut-down simulator that has no DeviceHub window open:
In any React Native app,
npx react-native run-ios --udid <shut-down simulator UDID>launches the app on a headless simulator.