Docs

Dev tools

Expo SDKExpo CLIExpo MCPExpo GoSnackOrbit

Services

WorkflowsBuildSubmitUpdateHostingLaunchObserve
new
Simulators
preview

Explore

ChangelogExpo Services (EAS)ContactAI
EnterprisePricingBlog
50K
Log in
Sign up

Site footer

Expo

Newsletter

Stay in touch with all things Expo

Product

  • Star us on GitHub
  • Expo CLI on GitHub
  • Expo Services (EAS)
  • EAS CLI on GitHub
  • Expo Go
  • Expo Orbit
  • Snack

Resources

  • Documentation
  • Blog
  • Articles
  • Demos
  • Changelog
  • Support
  • Trust Center
  • Join Discord

Solutions

  • Enterprise
  • Startup
  • Solo devs
  • React web devs
  • E-commerce
  • Crypto
  • Finserv
  • QSR

Company

  • Home
  • Pricing
  • Customers
  • Consultants
  • About
  • Branding
  • Careers

Legal

  • Terms of service
  • Acceptable use policy
  • Privacy policy
  • Privacy explained
  • Cookie policy
  • Security & Compliance
  • Enterprise trust
  • Community guidelines
© 2026 650 Industries, Inc.
All systems operational

October 20, 2026::Development·Product

Xcode 27 replaced Simulator.app. Expo CLI and expo-device-hub already know.

SDK 58 boots simulators through Xcode 27's Device Hub, and the new expo-device-hub plugin puts your simulators and emulators in a browser tab.

Krystof Woldrich

Krystof Woldrich

Engineering

Xcode 27 replaced Simulator.app. Expo CLI and expo-device-hub already know.

Contents

  • What changed in Xcode 27?
  • What expo-device-hub adds
  • How to enable it
  • Limitations
  • Feedback

You update Xcode. You run npx expo start, press i, and nothing happens. Simulator.app is gone. You find the device UDID, boot it by hand with simctl, run the build straight at it, and lose fast refresh in the process. That was Xcode 27 week for a lot of people, and the r/expo thread titled "Updated Xcode and iOS Simulator App can't be found" says the rest.

Expo CLI now detects Xcode 27's Device Hub, boots simulators through it, and focuses the right device using its devices:// deep link. Press i and it works the way it did with Simulator.app.

SDK 58 also introduces expo-device-hub, a dev tools plugin that turns your browser into a device dashboard. It works with SDK 57 and later. Install it, run npx expo start, and you get live streams of your iOS simulators and Android emulators, with tap, swipe, and type controls, boot and shutdown, CPU, memory, and network graphs while your app is running, and toggles for appearance, Liquid Glass, text size, and accessibility settings. It is MIT licensed, and it runs on your machine.

What changed in Xcode 27?

Xcode 27 removed Simulator.app and replaced it with Device Hub, a new app for managing simulated and physical devices. Any tool that opened Simulator.app by name stopped working. Expo CLI was one of those tools.

The core fix landed in two parts. First, Expo CLI checks for both Simulator.app and Device Hub, and treats Device Hub as a valid target when Simulator.app is missing. Second, when the CLI boots a device and knows its UDID, it opens devices://device/open?id=<udid> so Device Hub brings that device to the front. Without a UDID, it falls back to open -a DeviceHub. The original Device Hub support could boot a device but had no way to focus it, and the deep link closed that gap.

SDK 58 adds one more fix. Xcode 27 lists simulators in devicectl output next to physical devices, so expo run:ios tried to install onto a simulator as if it were hardware and failed at the install step. Expo CLI now ignores the simulators that devicectl reports.

You do not configure any of this. Upgrade to SDK 58, and expo start, expo run:ios, and expo start --ios handle Xcode 27. Device Hub detection and focusing also shipped in Expo CLI for SDK 56 and SDK 57.

What expo-device-hub adds

Device Hub solves the "where did my simulator go" problem. expo-device-hub is about what you do once it is booted.

It is an Expo dev tools plugin. When it is installed, npx expo start prints a link:

Open that link and you get a dashboard in your browser with your local simulators and emulators. You can:

  • Watch live video of each iOS simulator and Android emulator, and interact with them: tap, swipe, and type.
  • Boot and shut down devices without leaving the browser.
  • Read CPU, memory, and network graphs. They show up only while your app is running.
  • Toggle appearance (light and dark), Liquid Glass, text size, and accessibility settings from a sidebar, instead of digging through Settings on the device.

The streaming layer builds on the open source serve-sim and serve-emu projects, which are now maintained in the same repo (serve-sim is published to npm as @expo/serve-sim). Both iOS and Android offer low latency, high bitrate H.264 streaming for local use and WebRTC for remote streaming. Depending on the platform and the available hardware, other options (MJPEG, VP8, VP9) are available for the best experience. A shared @expo/hub-client package wraps both platforms behind the same hooks so the UI does not care which platform it is looking at.

The same client powers in-browser device streaming on expo.dev. If you want this experience without a local Xcode or Android Studio install, that is what Expo Simulators, our cloud simulators service, is for. It is in beta for existing Expo customers and not generally available yet. expo-device-hub is the local half of that story, and it stays free and open source. It also powers the Device panel in T3 Code, which documents expo-device-hub as the tool that streams its simulators and emulators.

How to enable it

Then open the Expo Device Hub link the CLI prints. You can also press Shift + M in the terminal to see all dev tools plugins for the project.

To use the dashboard without a running Expo project, start it as a standalone server with npx expo-device-hub.

The plugin is JavaScript only, so it works with development builds and Expo Go. If you add it to a shared repo, it can live in devDependencies.

Limitations

  • expo-device-hub is pre-1.0. Expect changes to the dashboard between releases.
  • iOS simulator management uses simctl, so that part needs macOS with Xcode. Android emulator management works anywhere the Android SDK tools (emulator, adb) are installed, including Windows.
  • Physical iOS device streaming is not in this release. It is on the roadmap for a later version, and it depends on iOS 27 capabilities.
  • Expo CLI still checks for Simulator.app before Device Hub. On Xcode 26 nothing changes.
  • There is no docs page for the plugin yet. The GitHub README is the reference for now.

Feedback

If Device Hub detection misses your setup, or the dashboard does something odd with a particular device, open an issue on expo/expo-device-hub or find us in the Expo Discord.

Share article

Related articles

All posts →
Introducing expo-app-intents: Siri, Shortcuts, Spotlight, and Apple Intelligence for Expo apps

October 19, 2026

Introducing expo-app-intents: Siri, Shortcuts, Spotlight, and Apple Intelligence for Expo apps

An early look at Expo Modules 2.0

September 8, 2026

An early look at Expo Modules 2.0

› Expo Device Hub: http://localhost:8081/_expo/plugins/expo-device-hub
npx expo install expo-device-hub
npx expo start