mcpField
E
expo-dev-client

expo-dev-client

github.com/midudev开发7.0k58 次安装1 周前更新
代码仓库

关于 expo-dev-client

expo-dev-client 是用于构建自定义 Expo 开发客户端、在实体设备上测试原生代码变更的技能。内容涵盖 EAS 云端和本地构建、安装,以及连接 Metro bundler。

主要功能

  1. 01使用 EAS 构建开发客户端
  2. 02云端与本地构建说明
  3. 03iOS 和 Android 构建选项
  4. 04在设备或模拟器安装构建
  5. 05连接 Metro 或扫描二维码

适用场景

  1. 01在设备上测试本地 Expo 模块
  2. 02测试 Expo Go 未包含的原生模块
  3. 03测试应用扩展、链接或远程推送通知

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/midudev/autoskills --skill expo-dev-client

安装后在 Claude Code 中输入/expo-dev-client确认已加载。

附带文件agents/openai.yaml

详细介绍

使用 EAS Build 为实体设备创建开发客户端,以便测试原生代码更改。使用此方式创建自定义 Expo Go 客户端,用于测试应用的不同分支。

本地构建免费;云端构建需付费。 expo-dev-client 本身是开源的,本地构建免费。通过 EAS Build/TestFlight 构建或分发会消耗 EAS 计划中的构建分钟数;要向设备分发或通过 TestFlight 分发,还需要付费的 Apple Developer 账户。请参阅 https://expo.dev/pricing。

重要提示:何时需要开发客户端

对于任何实际应用或生产应用,建议使用开发客户端。 Expo Go 是一个用于学习和快速试验其内置原生库的沙盒;大多数应用最终都会超出它的适用范围,并转而使用开发客户端。有关完整原因,请参阅 Expo Go 与开发构建。

仅在以下情况下需要开发客户端:

  • 本地 Expo 模块(自定义原生代码)
  • Apple 平台目标(小组件、App Clip、扩展)
  • Expo Go 中未包含的第三方原生模块
  • 配置插件,或测试远程推送通知和 App/通用链接

EAS 配置

确保 eas.json 中有一个 development 配置:

{
  "cli": {
    "version": ">= 16.0.1",
    "appVersionSource": "remote"
  },
  "build": {
    "production": {
      "autoIncrement": true
    },
    "development": {
      "autoIncrement": true,
      "developmentClient": true
    }
  },
  "submit": {
    "production": {},
    "development": {}
  }
}

关键设置:

  • developmentClient: true - 为开发构建打包 expo-dev-client
  • autoIncrement: true - 自动递增构建编号
  • appVersionSource: "remote" - 使用 EAS 作为版本号的唯一数据源

为 TestFlight 构建

使用一条命令构建 iOS 开发客户端并提交到 TestFlight:

eas build -p ios --profile development --submit

此命令将:

  1. 在云端构建开发客户端
  2. 自动提交到 App Store Connect
  3. 构建在 TestFlight 中就绪后,向你发送电子邮件

收到 TestFlight 电子邮件后:

  1. 在设备上从 TestFlight 下载构建版本
  2. 启动应用,查看 expo-dev-client 界面
  3. 连接到本地 Metro 打包器,或扫描二维码

本地构建

在你的计算机上构建开发客户端:

# iOS (requires Xcode)
eas build -p ios --profile development --local

# Android
eas build -p android --profile development --local

本地构建的输出:

  • iOS:.ipa 文件
  • Android:.apk 或 .aab 文件

安装本地构建版本

在模拟器上安装 iOS 构建版本:

# Find the .app in the .tar.gz output
tar -xzf build-*.tar.gz
xcrun simctl install booted ./path/to/App.app

在设备上安装 iOS 构建版本(需要签名):

# Use Xcode Devices window or ideviceinstaller
ideviceinstaller -i build.ipa

安装 Android 构建版本:

adb install build.apk

为指定平台构建

# iOS only
eas build -p ios --profile development

# Android only
eas build -p android --profile development

# Both platforms
eas build --profile development

检查构建状态

# List recent builds
eas build:list

# View build details
eas build:view

使用开发客户端

安装后,开发客户端提供以下功能:

  • 开发服务器连接 - 输入 Metro 打包器 URL 或扫描二维码
  • 构建信息 - 查看原生构建详情
  • 启动器界面 - 在不同开发服务器之间切换

连接到本地开发环境:

# Start Metro bundler
npx expo start --dev-client

# Scan QR code with dev client or enter URL manually

故障排除

构建因签名错误而失败:

eas credentials

清除构建缓存:

eas build -p ios --profile development --clear-cache

检查 EAS CLI 版本:

eas --version
eas update

提交反馈

如果你在此技能中发现错误、误导性内容或过时信息,请提交报告,帮助 Expo 改进:

npx --yes submit-expo-feedback@latest --category skills --subject "expo-dev-client" "<actionable feedback>"

仅当你有具体且可采取行动的问题时才提交。请尽可能提供相关背景信息。 如果 AI Agent 反复失败,或用户不得不接手 Expo 任务,请加载 expo-skill-feedback 技能,并按其 eval-candidate 流程操作,而不要重复使用上面的命令。

评论

支持 Markdown