HomeGuidesReferenceLearn
ArchiveExpo SnackDiscord and ForumsNewsletter

Expo Go

Learn about Expo Go, the free, open-source sandbox app for learning and experimenting with React Native on Android and iOS.


Expo Go is a free, open-source sandbox for learning and experimenting with React Native on Android and iOS devices. You can install it directly from app stores, and get up and running within minutes — no need to install a native toolchain and compile an app.

Expo Go is not recommended for building production-quality apps — use development builds instead. It's also not recommended for deploying/distributing apps. That said, everything you learn while working in Expo Go will be transferable to development builds, and you're likely to come back to Expo Go along your journey when you want to try new ideas in a quick new project sandbox. It's a great place to start!

Install Expo Go on your device

It is available on both the Android Play Store and iOS App Store.

  • Android Play Store - Android Lollipop (5) and greater
  • iOS App Store - iOS 13 and greater

When you run npx expo start in your project, Expo CLI starts a development server and generates a QR code. On Android, you can open the Expo Go app on your device and scan the QR code to connect to the dev server. On iOS, use the device's camera to scan the QR code.

Terminal
npx expo start
Want to understand how Expo Go works?

When Expo Go connects to the dev server, the server returns a JSON manifest file that describes the project. Expo Go uses this manifest to download the JavaScript bundle and any assets required to run the project. Then, the JavaScript engine executes this JavaScript bundle to render the React Native app.

The manifest is similar to an index.html on the web. It is served from the root URL / and allows downloading the project script code from bundleUrl. The manifest can be customized using the app config (app.json, app.config.js). Additional fields like icon and splash can be used to customize how Expo Go or expo-dev-client presents the app.

{
  "name": "My New Project",
  "entryPoint": "index.js",
  "bundleUrl": "http://localhost:8081/index.bundle?platform=ios"
}

SDK versions

Expo Go supports multiple SDK versions. A new Expo SDK version is released approximately three times each year. Each time a new version is added to Expo Go, an old version is dropped. You can see the supported SDK versions in the Expo Go app by navigating to the settings page.

What if I open a project with an unsupported SDK version?

When running a project that was created for an unsupported SDK version in Expo Go, you'll see the following error:

"Project is incompatible with this version of Expo Go"

To fix this, upgrading your project to a supported SDK version is highly recommended. If you want to learn how to do it, see Upgrade the project to a new SDK Version.

How do I upgrade my project from an unsupported SDK version?

See Upgrading Expo SDK guide for instructions for upgrading to a specific SDK version.

How can I install an older version of Expo Go to run my project?

If you cannot upgrade your project to a newer SDK version, you can still run it using an older version of Expo Go. However, this method will not work for physical iOS devices because it is impossible to install apps directly (sideload). If you need to run your project on a physical iOS device, consider creating a development build.

If you are trying to use this method on a physical Android device, connect it to your computer and enable the USB Debugging option.

To run it on an emulator or a simulator, see Android emulators and iOS simulators.

1

If installed, remove Expo Go from your device or simulator.

2

Start the development server:

Terminal
npx expo start

3

Press a or i to run your app on Android or iOS. This will download and install the compatible Expo Go on your device/simulator and open your project in the client.

A compatible version of Expo Go will be automatically installed on your device or simulator, and your project will open.

Log in with your Expo account

Open the Expo Go app after it has finished installing. If you have created an account with Expo CLI, you can sign in by clicking the Log In button in the top header on the Home tab. Signing in will make it easier for you to open projects in the Expo Go app while developing them — they will appear automatically under the Projects section on the Home tab of the app.

Sometimes, it can be useful to run your app directly on your computer instead of on a separate physical device. If you would like to set this up, you can learn more about installing an Android Emulator and an iOS Simulator (macOS only).