Reference version

Expo DevClient iconExpo DevClient

一个允许创建开发构建并包含实用开发工具的库。

Android
iOS
Bundled version:
~5.2.4

For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

expo-dev-client 会为你的调试构建添加各种有用的开发工具:

Expo 文档将包含 expo-dev-client 的调试构建称为 development builds

安装

Terminal
npx expo install expo-dev-client

如果你要在一个现有的 React Native 应用中安装它,请先在你的项目中安装 expo。然后,按照在现有 React Native 项目中安装 expo-dev-client中的说明进行操作。

app 配置中的配置

如果你在项目中使用 config plugins(Continuous Native Generation (CNG)),你可以使用其内置的 config plugin 来配置 development client launcher。该插件允许你配置各种无法在运行时设置、并且需要构建新的应用二进制文件后才会生效的属性。如果你的应用使用 CNG,那么你需要手动配置该库。

Example app.json with config plugin

app.json
{ "expo": { "plugins": [ [ "expo-dev-client", { "launchMode": "most-recent" } ] ] } }

Configurable properties

NameDefaultDescription
launchMode"most-recent"

决定是启动最近打开的项目,还是进入启动器屏幕。

  • most-recent - 尝试直接启动到之前打开过的项目,如果无法连接,则回退到启动器屏幕。
  • launcher - 打开启动器屏幕。
addGeneratedSchemetrue

默认情况下,expo-dev-client 会注册一个自定义 URL scheme 来打开项目。将此属性设为 false 可禁用该 scheme。

API

import * as DevClient from 'expo-dev-client';

Methods

DevClient.closeMenu()

Android
iOS

A method that closes development client menu when called.

Returns:
void

DevClient.hideMenu()

Android
iOS

A method that hides development client menu when called.

Returns:
void

DevClient.isDevelopmentBuild()

Android
iOS

A method that returns a boolean to indicate if the current application is a development build.

Returns:
boolean

DevClient.openMenu()

Android
iOS

A method that opens development client menu when called.

Returns:
void

DevClient.registerDevMenuItems(items)

Android
iOS
ParameterType
itemsExpoDevMenuItem[]

A method that allows to specify custom entries in the development client menu.

Returns:
Promise<void>

Types

ExpoDevMenuItem

Android
iOS

An object representing the custom development client menu entry.

PropertyTypeDescription
callback() => void

Callback to fire, when user selects an item.

namestring

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