配了三年 iOS 模拟器调试,每次调 UI 都要在 Simulator 和代码之间来回跳——今天 Expo SDK 58 把这件事彻底接进了本地工作流

配过 React Native 或者 Expo App 的人都清楚:UI 调样式的时候,流程是「改代码 → 切到 Simulator → 等刷新 → 人眼判断效果 → 再切回去改」。这个循环一天重复几十次,每次切窗口都是注意力损耗。Expo SDK 58 beta 推出了 expo-device-hub,直接把这个循环接进了 Xcode 27 的 Device Hub,相当于在本地跑了一个轻量级的设备农场控制台。

之前怎么调试 Expo iOS App

在没有专用工具的时候,Expo 开发者调试 iOS 界面有两条常用路:

第一条是物理机 + Safari Web Inspector。拿真机插上 Mac,在 Safari 里开 Web Inspector,优点是可以看到真实的 Safari 渲染环境,缺点是物理机调试有安全提示弹窗打断、屏幕又只有一个,用起来很不顺手。

第二条是 Xcode Simulator 直接跑 Expo。这个更常见,但 Xcode Simulator 本身的 Device Hub 功能很弱——你能看到模拟器的窗口,但看不到实时的性能数据,也没办法在不切出去的情况下查看控制台日志。UI 调整只能靠肉眼。

两条路都有一个共同问题:调试动作和代码编辑动作抢同一个屏幕。

expo-device-hub 带来了什么

expo-device-hub 是 Expo SDK 58 beta 随附的新插件,专门用来接 Xcode 27 的 Device Hub。Xcode 27 把 Simulator.app 里的设备管理功能拆出来变成了独立的 Device Hub 应用,expo-device-hub 在这个基础上做了一层 Expo 集成:

  1. Live 模拟器串流:不需要打开 Simulator.app 的窗口,Device Hub 里直接显示运行中的 Expo App 画面,支持实时刷新。

  2. 交互控制:点击 Device Hub 里的模拟器画面可以直接触发 tap、scroll、text input 等事件,不用切到模拟器窗口再操作。

  3. 性能曲线图:CPU、内存、帧率实时曲线直接画在 Device Hub 的设备详情页里,不需要另外开 Instruments。

// 在 Expo 项目里启用 expo-device-hub
// app.json 或 app.config.js
{
  "expo": {
    "plugins": [
      [
        "expo-device-hub",
        {
          "enableLiveReload": true,
          "showPerformanceGraphs": true
        }
      ]
    ]
  }
}

新旧调试体验对比

维度 旧流程(Simulator.app 单独窗口) expo-device-hub + Device Hub
UI 调整反馈 切窗口 → 等刷新 → 人眼判断 Device Hub 内实时预览
控制台日志 Simulator → 单独打开 Console Device Hub 内联查看
性能监控 需要开 Instruments Device Hub 内性能曲线
多设备对比 多个 Simulator 窗口重叠 Device Hub 统一管理列表

下一步

Expo SDK 58 beta 还在测试阶段,稳定版预计在 2026 年 10 月发布。如果你是 Xcode 27 + Expo 项目,可以现在就用 npx expo@next start 尝鲜 Device Hub 集成。需要注意的是:expo-device-hub 需要 Xcode 27 的 Device Hub 支持,老版本 Xcode 没有这个 API。升级之前先确认你的 Xcode 版本。

对于已经用惯了 expo-dev-client 的团队,SDK 58 的迁移成本主要是 expo-device-hub 插件注册这一步,其他 API 变动集中在 scene-based lifecycle 适配(iOS 17 的 UIScene 生命周期),非 iOS 调试为主的团队基本不受影响。

评论区

0 条评论

登录后可评论。

阿跨·跨端开发 1504 阅读