Learn how to create development builds for a project.
Development builds can be created with EAS Build or locally on your computer if you have Android Studio and Xcode installed.
In this guide, you'll find information on creating a development build with EAS and installing it on an emulator/simulator or a physical device to continue developing your app.
If you are looking to create a development build locally, rather than remotely on EAS, you can create local builds with
npx expo run:[android|ios]
or witheas build --local
.
You need to initialize your project with Expo. If you still need to do so, see the initializing steps if you are starting a new project.
We also recommend installing EAS CLI as a global npm dependency by running the following command:
-
npm install -g eas-cli
1
To initialize a development build, you need to install the expo-dev-client
library in your project:
-
npx expo install expo-dev-client
2
Logging into your Expo account will be useful when creating a build or submitting your app to the app stores.
If you are already signed in to an Expo account using Expo CLI, you can skip the steps described in this section. If you are not, run the following command to log in:
-
eas login
You can check whether you are logged in by running eas whoami
.
3
When you run the eas build
command, it will link your project to a new or existing project on EAS and create an eas.json file at the root of your project directory. The eas.json includes with three default build profiles — development
, preview
, and production
. A minimal configuration is shown below:
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {}
}
}
The development
profile sets the following options:
developmentClient
to true
to create a Debug build. It allows the expo-dev-client
library to choose the update to load in your app and provides tools to help you develop it. It also generates a build artifact you can install on a device or emulator/simulator.distribution
to internal
makes the build ready for internal distribution.iOS builds where
developmentClient
is set totrue
on the build profile should always be distributed asinternal
. If you are distributing for TestFlight, you have to set the distribution tostore
.
4
Follow the steps below to create and install the development build on an Android Emulator or an iOS Simulator.
This is only required if you want to develop a project on an emulator/simulator. Otherwise, skip these steps if you are using a device.
Each platform has specific instructions you'll have to follow:
To create and install the development build on an Android Emulator, you will need an .apk. To create it, run the following command:
-
eas build --profile development --platform android
After the build is complete, the CLI will prompt you to automatically download and install it on the Android Emulator. When prompted, press Y to directly install it on the emulator.
See Build APKs for Android Emulators and devices for more information.
To create and install a development build on an iOS Simulator, we recommend you create a separate build profile for the simulator and then set the ios.simulator
option to true
in the eas.json.
For example, the development-simulator
profile below is only for creating a development build for iOS Simulator:
{
"build": {
"development-simulator": {
"developmentClient": true,
"distribution": "internal",
"ios": {
"simulator": true
}
}
}
}
Then, run the following command to create the development build on an iOS Simulator:
-
eas build --profile development-simulator --platform ios
After the build is complete, the CLI will prompt you to automatically download and install it on the iOS Simulator. When prompted, press Y to directly install it on the simulator.
See Installing build on the simulator for more information.
5
Follow the steps below to create and install the development build on an Android or an iOS device. Each platform has specific instructions you'll have to follow:
If you have created a development build for Android Emulator, you do not need to create it separately for the device. You can skip this step since the same .apk will work in both scenarios.
To create and install the development build on an Android device, you will need a .apk. To create it, run the following command:
-
eas build --profile development --platform android
After the build is complete, copy the URL to the .apk from the build details page or the link provided when eas build
has finished. Then, send that URL to your device and open it on your device to download and install the .apk.
Apple Developer membership is required to create and install a development build on an iOS device.
To register any iOS device you'd like to develop onto your ad hoc provisioning profile, run the following command:
-
eas device:create
After registering your iOS device, you can create the development build by running the command:
-
eas build --profile development --platform ios
Devices running iOS 16 and above require enabling a special OS-level Developer Mode to install development builds. If you don't have this setting enabled or are installing your first development build on your device, see iOS Developer Mode to enable it.
After the build is complete, you can download it on your iOS device by scanning the QR code from the device's camera from the Expo CLI. The QR code is provided when the eas build
command has finished running.
You can also find this QR code on the build page in the Expo dashboard. Click the Install button and scan the QR code using the system's camera.