Expo

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

Critical Insight

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

Problem

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.

Solution

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.

Impact

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.

The streaming tech behind expo-device-hub also powers Expo's upcoming cloud simulators service, and there's a physical iOS device feature on the roadmap.

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.

Read the original on expo.dev (opens in new tab)

AI tools for iOS

Browse all AI tools →