This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Introduction to development builds
Edit page
Learn how to create a development build in your Expo project and why use a development build instead of Expo Go.
When you create a new Expo app with create-expo-app, you start with a project where you update TypeScript/JavaScript code on your local machine and view the changes in the Expo Go app. A development build is essentially your own version of Expo Go where you are free to use any native libraries and change any native configuration.
A development build is recommended when you want to create your own app and release to app stores. It includes the expo-dev-client library, which augments the built-in React Native development tooling. The tooling also includes support for inspecting network requests and a "launcher" UI that lets you switch between different development servers (such as between a server running on your machine or a teammate's machine) and deployments of your app (such as published updates with EAS Update).

In this tutorial video, Beto explains what each of them is and when to choose a development build.
How would you like to build your development build?
All three methods produce the same development build. They differ in where the app compiles and what you need to have installed on your machine.
Build locally
Compile the app yourself with Expo CLI and your native toolchain. No Expo account is required and this is the only way to install a development build on an iPhone without a paid Apple Developer account.
Host platform support
| Android | iOS Simulator | iPhone device | |
|---|---|---|---|
| macOS | |||
| Windows | |||
| Linux |
1 requirement
1 requirement
Set up your development environment for the platforms you build for: Android Studio and Emulator for Android, Xcode and iOS Simulator for iOS.
1
Install expo-dev-client
Run the following command in your project's root directory:
- npx expo install expo-dev-clientAre you using this library in an existing React Native project?
Apps that don't use Continuous Native Generation or are created with npx react-native, require further configuration after installing this library. See steps 1 and 2 from Install expo-dev-client in an existing React Native project.
What does a development build look like?
It is possible to use development builds without the
expo-dev-clientlibrary. In that case, start the development server withnpx expo start --dev-clientto target your development build instead of Expo Go.
2
Build and run the app
- npx expo run:androidBy default the app installs on a running Android Emulator. For a physical device, plug it in via USB, allow USB debugging when prompted, and add the --device flag.
- npx expo run:iosBy default the app installs on the iOS Simulator. For an iPhone, plug it in, enable developer mode, make sure your app config has a unique ios.bundleIdentifier, and add the --device flag.
This command runs prebuild to generate the native android and ios directories if they don't exist, then compiles the app, installs it, and starts the development server.
3
Rebuild when native code changes
The expo run:android|ios command reuses the native android and ios directories on later runs. When you only change your app's TypeScript/JavaScript code, there is no need to rebuild the native app. Instead, start the development server with:
- npx expo startYou only need to regenerate the native directories (android and ios) when:
- Installing or updating a library containing native code
- Changing your app config (app.json)
- Upgrading your Expo SDK version
In these cases, regenerate the native directories with:
- npx expo prebuild --cleanThen, rebuild your app with the updated native code, with:
- npx expo run:android- npx expo run:iosAll Expo build tools (
npx expo run:android|iosandeas build) run prebuild automatically if no native directories exist, so you don't need to run it manually the first time. Learn more about Continuous Native Generation (CNG).
After you install the development build
Launch the development build from your device's Home screen and connect to a development server from the launcher screen to start working on your app. To learn how to use your new build, including the launcher screen, rebuilding, and debugging, see Use a development build. For common questions about development builds and Expo Go, including what you can't do in Expo Go and why, see the FAQ.
Related Expo Skills
If you use an AI agent, install Expo Skills to teach it the workflows on this page. The following skills are related to development builds:
Build and distribute Expo development clients locally or via TestFlight for internal testing.
Run and control a user's app on a remote iOS/Android simulator hosted on EAS cloud.