Guides
Plan-enterprise-icon
Expo Application Services
API Reference

Installation in React Native and bare projects

Learn how to configure development builds for bare React Native projects.


The installation steps on this page are only required to add the expo-dev-client library to a React Native or a bare project.

Info-icon

To add the expo-dev-client library to an existing managed project, see Create development builds.

If you're starting your project, you can create a new project with our with-dev-client template. Run the following command to initialize the project:

Terminal
npx crna -t with-dev-client

Otherwise, if you already have an existing React Native or a bare project, follow the steps below to add expo-dev-client to it.

1. Set up Expo modules

If you created your project with npx react-native init and do not have any other Expo packages installed, you'd need to install Expo modules before proceeding.

Otherwise, if you already have expo and/or other Expo modules up and running, you can skip this step.

2. Installation

Add the expo-dev-client library to your package.json:

Terminal
npx expo install expo-dev-client

If your project has an ios/ directory on disk, run the following command to fully install the native code for expo-dev-client:

Terminal
npx pod-install

If your project doesn't have an ios/ directory, you can skip this step.

iOS

Add the following lines to your Podfile:

Run the following command to install native code for the expo-dev-client via CocoaPods.

Terminal
npx pod-install

Also, ensure that your project is configured to deploy on an iOS version above 10. To do that, open Xcode, go to General > Deployment Info and select an iOS version of at least 11.0.

Android

No additional changes are needed to install the package on Android.

3. Basic configuration

Development builds use deep links to open projects from the QR code. If you have added a custom deep link scheme to your project, your development build will use it. However, if this isn't the case, you need to configure the deep link support for your app. The uri-scheme package will do this for you once you have chosen a scheme.

Terminal
npx uri-scheme add <your scheme>

For more information, see uri-scheme package.

No additional steps are needed to configure the package on SDK 45 and above.

iOS

Add the following changes to allow the expo-dev-client library to control project initialization in the DEBUG mode.

Android

Add the following changes to allow the expo-dev-client library to control project initialization in the DEBUG mode.

4. Optional configuration

There are a few more changes you can make to get the best experience, but you can skip ahead to building if you prefer.

Disable packager autostart when building for iOS

When you start your project on iOS, the metro bundler will start automatically. This behavior might not be ideal when you want to use npx expo start. Our recommended solution is to remove the Start Packager action from building scripts. To do that you need to open the Xcode, go to Build Phases and remove the Start Packager action.

Add better error handlers

For certain type of errors, you can provide more helpful error messages. To turn this on, import import expo-dev-client in the project's index file (in the managed workflow, you need to add this import on top of the App.{js|tsx}). Make sure that the import statement is above import App from './App'.

import 'expo-dev-client';
...
import App from "./App";

For more information, see Error handling.

Loading published updates

Development builds can also open and preview published updates to your app.

To add this feature, install expo-updates in your project:

Terminal
npx expo install expo-updates

After doing so, if your project has an ios/ directory on disk, you will need to reinstall CocoaPods:

Terminal
npx pod-install

To add this feature, add expo-updates@0.8.0 or newer to your app if it isn't already installed, and add a small additional integration in your AppDelegate.m and MainApplication.java files.

  1. Install expo-modules in your project.
  2. Install expo-updates in your project.
  3. Add the following changes to complete the integration with expo-updates:

5. Build and install

You're now ready to build your first development build.

  • Message-iconAsk a question on the forums
  • Edit-iconEdit this page

Was this doc helpful?