HomeGuidesReferenceLearn
ArchiveExpo SnackDiscord and ForumsNewsletter

Install expo-dev-client in a bare React Native project

Learn how to install and configure expo-dev-client in bare React Native projects.


The following guide explains how to install and configure expo-dev-client in an existing React Native project.

Do you need to create a new project?

If you're starting with a new project, create it using the with-dev-client template:

Terminal
npx create-expo-app -e with-dev-client
Do you use Continuous Native Generation (CNG) in your project?

You may be reading the wrong guide then. To use expo-dev-client in a project that uses CNG, see Create a development build.

Prerequisites

The expo package must be installed and configured. If you created your project with npx react-native init and do not have any other Expo libraries installed, you will need to install Expo modules before proceeding.

1

Install expo-dev-client

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.

2

Configure deep links

Expo CLI uses a deep link to launch your project, and it's also useful if you use plan to use expo-dev-client for launching preview updates if you have added a custom deep link scheme to your project.

If you haven't configured a scheme for your app yet to support deep linking, then use uri-scheme library to do this for you.

Terminal
# List your project's schemes
npx uri-scheme list

# Add a scheme to your project
npx uri-scheme add your-scheme

For more information, see the uri-scheme library.

3

Add additional optional configuration

For certain types of errors, you can provide more helpful error messages. To turn this on, 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';
%%placeholder-start%%... %%placeholder-end%%
import App from './App';

For more information, see Error handling.

4

Build and install the app

Create a debug build of your app using the tools of your choice. For example, you can do this locally with Expo CLI or in the cloud with EAS Build.