A library that allows creating a development build and includes useful development tools.
expo-dev-client adds various useful development tools to your debug builds:
- A configurable launcher UI, so you can launch updates (such as from PR previews) and switch between development servers without needing to recompile the native app
- Improved debugging tools (such as support for inspecting network requests)
- A powerful and extensible developer menu UI
Expo documentation refers to debug builds that include expo-dev-client as development builds.
Installation
-Â npx expo install expo-dev-clientIf you are installing this in an existing React Native app, start by installing expo in your project. Then, follow the instructions from Install expo-dev-client in an existing React Native project.
Configuration in app config
You can configure development client launcher using its built-in config plugin if you use config plugins in your project (Continuous Native Generation (CNG)). The plugin allows you to configure various properties that cannot be set at runtime and require building a new app binary to take effect. If your app does not use CNG, then you'll need to manually configure the library.
Example app.json with config plugin
{ "expo": { "plugins": [ [ "expo-dev-client", { "launchMode": "most-recent" } ] ] } }
Configurable properties
| Name | Default | Description |
|---|---|---|
launchMode | "most-recent" | Determines whether to launch the most recently opened project or navigate to the launcher screen.
|
addGeneratedScheme | true | By default, |
API
import * as DevClient from 'expo-dev-client';
Methods
A method that closes development client menu when called.
voidA method that returns a boolean to indicate if the current application is a development build.
boolean| Parameter | Type |
|---|---|
| items | ExpoDevMenuItem[] |
A method that allows to specify custom entries in the development client menu.
Promise<void>Types
An object representing the custom development client menu entry.
| Property | Type | Description |
|---|---|---|
| callback | () => void | Callback to fire, when user selects an item. |
| name | string | Name of the entry, will be used as label. |
| shouldCollapse(optional) | boolean | A boolean specifying if the menu should close after the user interaction. Default: false |
Expo DevClient