---
modificationDate: October 15, 2026
title: Run an Expo or React Native app on Expo Simulators
description: Install an Expo or React Native development build or release build on a remote Android Emulator or iOS Simulator, and use Fast Refresh, component inspection, and profiling.
---

This documentation is available as Markdown for AI agents and LLMs. See the [full Markdown index](https://docs.expo.dev/llms.txt) or append .md to any documentation URL.

# Run an Expo or React Native app on Expo Simulators

Install an Expo or React Native development build or release build on a remote Android Emulator or iOS Simulator, and use Fast Refresh, component inspection, and profiling.

<AgentInstructions>

## Submitting Feedback

If you encounter errors, misleading or outdated information, report it so Expo can be improved:

Preferred command:
npx --yes submit-expo-feedback@latest --category docs --subject "/preview/simulators/works-with/expo-and-react-native/" "<actionable feedback>"

Direct HTTP fallback:
curl -X POST https://api.expo.dev/v2/feedback/docs-send -H 'Content-Type: application/json' -d '{"url":"/preview/simulators/works-with/expo-and-react-native/","feedback":"🤖 Agent feedback for docs: <specific, actionable description> (<model>, <harness>)"}'

Only submit when you have something specific and actionable to report. Try to give the most context.

</AgentInstructions>

> **Expo Simulators is a limited-access preview.** It is not included with paid or free plans and is currently available only to select partners. [Join the waitlist](https://expo.dev/services/simulators) if you are interested in trying it.

Expo Simulators supports all of its features for Expo and React Native apps. Create a simulator build with EAS Build or on your computer, then install it on a session. A development build connected to Metro also gives you Fast Refresh and the React Native features of agent-device.

## Choose a build

| Goal | Build | Guide |
| --- | --- | --- |
| See source changes with Fast Refresh | Development build connected to Metro | [Iterate on your code](https://docs.expo.dev/preview/simulators/how-to/iterate-on-your-code.md) |
| Inspect a fixed build or capture evidence | Release build | [Install your app](https://docs.expo.dev/preview/simulators/how-to/install-your-app.md) |
| Test a project without custom native code | Expo Go | [Expo Go](https://docs.expo.dev/preview/simulators/works-with/expo-go.md) |

A release build contains the JavaScript from build time. It does not show later source changes, even when you connect it to Metro.

## Expo projects

An Expo project already has what EAS CLI needs. Link it to EAS one time:

```sh
eas init
```

`eas init` adds the EAS project ID to the app config. Then start a session with an application source:

```sh
eas build --platform ios --profile remote-device --non-interactive
eas simulator:start --platform ios --type agent-device --build-id <build-id> --name "Release build review" --non-interactive
```

The `remote-device` profile needs an APK build type for Android and `ios.simulator: true` for iOS. See [Build a simulator-compatible app](https://docs.expo.dev/preview/simulators/how-to/install-your-app.md#build-a-simulator-compatible-app).

## React Native projects without Expo

EAS CLI finds the EAS project from the current directory. It needs **package.json** and an app config that contains the project ID. Add an app config to the repository root if the project does not have one:

```json app.json
{
  "expo": {
    "name": "my-app",
    "slug": "my-app",
    "extra": {
      "eas": {
        "projectId": "<project-id>"
      }
    }
  }
}
```

To use the REST API instead, pass the project ID as `appId`. The REST API does not read files in the repository. See [Expo Simulators REST API](https://docs.expo.dev/preview/simulators/reference/rest-api.md).

## Use React Native features

agent-device has features for React Native apps:

-   React component, props, and hooks inspection
-   React render profiling, such as slow commits and re-renders
-   JavaScript evaluation through the Chrome DevTools Protocol (CDP) of Metro

Component inspection and render profiling need Metro and a React DevTools connection. On React Native 0.87 and later, add `agent-react-devtools` as a dev dependency and run `npx agent-react-devtools init` once. JavaScript evaluation needs only Metro. Keep Metro running while you use these features. For version-matched guidance, read the agent-device help through the session:

```sh
eas simulator:exec npx agent-device@latest help react-native
eas simulator:exec npx agent-device@latest help react-devtools
```

## Common questions

#### Do I need to add a library to my app?

No. Device-level actions such as snapshots, presses, text entry, screenshots, and logs work on the installed app with no library added to the project.
