OpenAI Codex 推出 Build iOS Apps 插件,让用户在不离开 Codex 的情况下查看、测试 iOS 应用,预览 SwiftUI 并热重载。原理:借助第三方 npm serve-sim 将 iOS Simulator 画面截取为视频流显示在浏览器中,同时建立控制通道将浏览器的点击、拖动等操作转换为模拟器触摸或键盘事件。插件读取 iOS App 的 Accessibility 信息,在浏览器画面上覆盖透明 HTML 按钮,使 Codex 能选择原生 UI 元素。SwiftUI 预览和热重载通过临时生成预览小 App,仅重新编译相关动态库,无需完整重装应用。
Codex 新的这个 Build iOS Apps 插件,可以让你方便的在 Codex 查看和测试你的 iOS 应用,预览 SwiftUI组件,修改了还能马上看到更新。
简单解释下原理:
这个插件可以理解成:把原本只能在 Xcode 和 iOS Simulator 里看的 App,搬到了 Codex 右边的浏览器里。视频里右侧那个 iPhone 画面,其实还是一台真实运行中的 iOS Simulator,只是插件用一个第三方 npm serve-sim 把模拟器画面持续截取成视频流,再显示到浏览器页面中。所以 Codex 不只是读代码,它还能"看见"App 当前长什么样。
浏览器能操作这个 App,是因为插件还建立了一条控制通道。你在浏览器里点击、拖动、输入文字时,浏览器会把这些动作换算成模拟器里的触摸坐标或键盘事件,再发回 iOS Simulator。也就是说,浏览器本身没有运行 iOS App,它只是像一个远程屏幕:一边接收模拟器画面,一边把你的操作转发给模拟器。
结合 Codex 的 Browser Use 操作浏览器能力,就可以实现 Codex 自行调试 iOS App。