Xcode 27 replaced Simulator.app. Expo CLI and expo-device-hub already know.
Article Summary
Krystof Woldrich from Expo just solved the chaos that hit mobile devs when Xcode 27 killed Simulator.app. If you spent "Xcode 27 week" manually booting simulators and losing fast refresh, this one's for you.
Apple replaced Simulator.app with Device Hub in Xcode 27, breaking every tool that relied on the old simulator workflow. Expo shipped fixes in SDK 58 and introduced expo-device-hub, an open source dev tools plugin that turns your browser into a full device dashboard for iOS simulators and Android emulators.
Key Takeaways
- Expo CLI auto-detects Device Hub and boots simulators via deep links
- expo-device-hub streams live video with tap/swipe controls in browser
- Dashboard shows CPU, memory, network graphs while app runs
- Toggle dark mode, text size, accessibility without touching Settings
- MIT licensed, runs locally, works with SDK 57+
Expo SDK 58 makes Xcode 27's Device Hub work seamlessly with existing workflows, while expo-device-hub gives you a browser-based control center for all your local simulators and emulators.
Continue reading
What This Article Covers
In Xcode 27, devicectl lists simulators right alongside physical devices. Because of this, expo run:ios tried to install builds onto simulators as if they were hardware, and the install step failed.
Expo CLI now checks for both Simulator.app and Device Hub. When no UDID is known, it falls back to 'open -a DeviceHub', and it filters out any simulators that devicectl reports.
Krystof Woldrich's team backported Device Hub detection and focusing to SDK 56 and SDK 57, not just SDK 58. That means older projects get the same compatibility without needing to upgrade.
This page summarizes “Xcode 27 replaced Simulator.app. Expo CLI and expo-device-hub already know.” by Expo, published Oct 20, 2026. All credit for the original work goes to the authors.