This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Expo DevClient
一个允许创建开发版本并包含实用开发工具的库。
expo-dev-client 会为你的调试构建添加各种实用的开发工具:
- 可配置的启动器 UI,因此你可以启动更新(例如 PR 预览)并在不同的开发服务器之间切换,而无需重新编译原生应用
- 改进的调试工具(例如支持检查网络请求)
- 功能强大且可扩展的开发者菜单 UI
Expo 文档将包含 expo-dev-client 的调试构建称为 开发构建。
安装
- npx expo install expo-dev-client当你使用 EAS Build 创建构建时,请在 eas.json 中的某个构建配置文件里将 developmentClient 设置为 true。如果不这样做,EAS Build 会生成一个不包含开发工具的独立构建。例如:
{ "build": { "development": { "developmentClient": true, "distribution": "internal" %%placeholder-start%%... %%placeholder-end%% } } %%placeholder-start%%... %%placeholder-end%% }
有关更多信息,请参阅 eas.json 参考文档中的 developmentClient 属性。
如果你要在现有的 React Native 应用中安装此功能,请先在你的项目中安装 expo。然后,按照在现有 React Native 项目中安装 expo-dev-client中的说明进行操作。
在 app 配置中进行配置
如果你在项目中使用 config plugins(Continuous Native Generation (CNG)),你可以使用其内置的 config plugin 来配置 development client 启动器。该插件允许你配置各种无法在运行时设置、且需要构建新的应用二进制文件才能生效的属性。如果你的应用不使用 CNG,那么你需要手动配置该库。
Example app.json with config plugin
{ "expo": { "plugins": [ [ "expo-dev-client", { "launchMode": "most-recent", "defaultLaunchURL": "http://localhost:8081", "android": { "defaultLaunchURL": "http://10.0.0.2:8081" }, "toolsButton": true, "skipOnboarding": false, "showMenuAtLaunch": true } ] ] } }
Configurable properties
| Name | Default | Description |
|---|---|---|
launchMode | "most-recent" | 决定是启动最近打开的项目,还是进入启动器屏幕。
|
addGeneratedScheme | true | 默认情况下, |
defaultLaunchURL | - | 直接启动到此 URL,而不是进入启动器屏幕。
如果 |
toolsButton | true | 是否显示悬浮工具按钮。 |
skipOnboarding | false | 跳过应用首次启动时在开发者菜单中显示的引导屏幕。 |
showMenuAtLaunch | true | 在启动应用后立即显示开发者菜单。 |
TV 支持
- Android TV:支持所有操作,类似于 Android 手机。
- Apple TV:支持使用本地或隧道式 packager 的基本操作。目前尚不支持 EAS 身份验证,以及列出 EAS 构建和更新。
API
import * as DevClient from 'expo-dev-client';
Methods
A method that closes development client menu when called.
voidA method that hides development client menu when called.
voidA method that opens development client menu when called.
void| 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 |