跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

在模拟器里测试 iOS 应用

Claude Code 桌面版在 Claude 构建、运行或检查应用时,在 iOS Simulator 窗格里打开你的应用,每个会话有独立的模拟器:要求、使用、手动操控、设备管理、授权与排障(macOS 公开 beta)。

iOS Simulator 窗格在 Claude Code 桌面版里,把你的应用在 Apple 的 iOS Simulator 里运行的画面显示在对话旁边。当 Claude 在模拟器里构建、安装、启动或检查你的应用时,窗格自动打开并实时串流设备画面。可以用它观看 Claude 运行和测试你的应用,或在 Claude 继续工作的同时自己点按应用。这个窗格直接驱动模拟器,所以不需要 computer use,也不会接管你的屏幕或隐藏其他窗口;从 CLI 里,Claude 则通过 computer use 访问 iOS Simulator,像你用鼠标那样控制屏幕上的模拟器。

该窗格处于 macOS 上桌面版的公开 beta,适用于 Pro、Max、Team 和 Enterprise 套餐(启用了 HIPAA 配置的 Enterprise 组织除外)。

要求

窗格使用 Apple 的模拟器工具,桌面应用不包含它们。启动会话前确保有:Claude Desktop v1.24012.0 或更高版本;一台 Mac(iOS Simulator 只在 macOS 上运行);安装了 iOS 平台的 Xcode(提供模拟器设备)。推荐 Xcode 26.x 或 Xcode 27,窗格两者都能用。本页的「设备」指模拟的 iPhone 或 iPad(与你在 Xcode Window → Devices and Simulators 里管理的是同一批),不是实体硬件。窗格只在本地会话可用,云端和 SSH 会话里 Claude 运行的机器无法访问你 Mac 上的模拟器。

安装了多个 Xcode 时,窗格使用 xcode-select 指向的那个;要换用另一个,按路径选择,然后退出并重新打开 Claude Desktop;xcode-select -p 可检查当前选择:

sudo xcode-select -s /Applications/Xcode-26.4.app

在模拟器里运行你的应用

不需要命令或设置来打开窗格,Claude 在模拟器里运行你的应用时会打开它:

  1. 在桌面版的 Code 标签页,以你应用的项目为项目文件夹开始会话(任何构建 iOS Simulator 应用的项目都行)

  2. 让 Claude 运行或测试应用,围绕运行或验证应用来措辞,例如:

    Build the app and run it in the simulator to check the onboarding flow.
  3. 应用在模拟器里启动时,iOS Simulator 窗格在对话旁打开;Claude 第一次使用某设备时桌面应用会请你允许。Claude 安装应用、点按并读取屏幕来验证自己的改动,你在旁观看

窗格在 Claude 于会话任一时刻在模拟器里启动应用时都会打开。你的请求是关于「看到应用」时(如「新屏幕看起来对吗?」),Claude 会在开始工作前先启动模拟器;Claude 修复 bug 或改了屏幕后,让它验证改动,重新启动应用会重新打开窗格。窗格显示应用实际启动所在的设备;要在特定设备上测试,在请求里点名(如「run it on the iPhone SE simulator」)。Claude 启动的设备也会出现在 Apple 的 Simulator 应用里(Xcode 27 里是 Device Hub),Claude 也可以把应用安装到你已经启动的设备上。你也可以自己打开窗格:会话有模拟器附加或编辑过 Swift 文件后,会话工具栏的 Views 菜单会出现 iOS Simulator 项,窗格还没显示设备时点 Attach simulator,或在旁边的设备菜单里选具体设备(选中已关机的设备会启动它)。

自己操控模拟器

窗格是可交互的,不只是查看器。Claude 工作时或任务间,你可以:

  • 在设备屏幕上点击和拖动来点按和滑动
  • 用与 Apple Simulator 应用相同的快捷键按硬件按键:Cmd+Shift+H 主屏幕、Cmd+L 锁屏、Cmd+↑ 和 Cmd+↓ 音量
  • 用旋转按钮或 Cmd+→ 顺时针旋转设备四分之一圈
  • 从设备菜单切换窗格显示的设备(列出每个模拟器的 OS 版本和是否已启动)
  • 用 Cmd+S 保存截图、Cmd+R 保存屏幕录制(用窗格的捕获按钮或快捷键),文件保存到你的桌面
  • 点 Detach simulator 停止串流设备而不关闭它,窗格回到 Attach simulator 状态

设备名下的一行调节模拟器的视频流:如果窗格让 Mac 吃力,调低 Frame rate 或 Resolution,在 H.264 和 JPEG 之间切换 Encoding,或勾选 FPS 显示窗格接收的帧率;这些设置改变窗格如何显示设备,不改变应用如何运行。你和 Claude 驱动的是同一台设备,所以你的点按会改变 Claude 看到的应用状态;要让 Claude 检查某个屏幕,先点到那里再问它。Claude 在驱动设备时,窗格会在屏幕上方显示 Claude is using this device 徽标,等徽标消失后再点,这样结果反映的是应用而不是你的输入。

会话如何管理设备

每台设备属于启动它的会话,所以并行会话不共享设备:在一个会话窗格里看到的反映的是该会话的工作。在侧边栏切换会话会一并切换模拟器视图,切回时从原处继续同一台设备。Claude Code 桌面版会在不再使用时关闭它启动的模拟器:退出应用时、归档会话时、或把设备从窗格分离 10 分钟后。你在 Claude Code 桌面版之外启动的设备(如在 Apple 的 Simulator 应用或 Device Hub 里)永远不会被自动关闭。

授予 Claude 访问设备的权限

Claude 控制设备前会征求你的同意,而构建应用或在设备上打开 URL 遵循会话的权限模式。你或你的组织也可以完全关闭 Claude 的访问。

  • 首次允许设备:Claude 第一次使用模拟器时,桌面应用请你允许。同意涵盖控制该设备和对它截图,按设备授予一次(不是每个会话一次)。Claude 对设备的截图会发送给 Anthropic,并按你正常的对话保留设置保存,所以不要在 Claude 能使用的设备上登录真实账号。允许后,Claude 在设备上的操作(点按、输入、启动应用、截图)无需进一步提示,它们与你在窗格里点击的信任相同,且只触及模拟设备,所以窗格不需要 computer use 要求的 macOS 辅助功能和屏幕录制权限。如果你拒绝,设备仍会启动,窗格仍可用于你自己的点按,只有 Claude 的访问保持关闭;之后改主意,在窗格里点 Let Claude use it
  • 遵循权限模式的操作:在设备上打开 URL(如测试深链接或在设备的 Safari 里加载页面,因为 URL 可以把数据带出设备);构建应用(因为 xcodebuild 会在你的 Mac 上运行项目的构建脚本,查看已在进行的构建不提示)
  • 关闭模拟器访问:可以在桌面应用设置里关闭 Claude 的模拟器访问;组织有两种方式为所有人关闭:disableMobileSimulatorTools 托管设置阻止 Claude 的模拟器工具(窗格仍可用于你自己的点按,且无法在应用内覆盖);requireCoworkFullVmSandbox 策略键让 Claude 的工具在隔离虚拟机而不是你的 Mac 上运行,会完全禁用模拟器窗格和 Claude 的模拟器工具

限制

Claude 只驱动模拟设备,不能控制实体 iPhone 或 iPad。要在实体设备上测试,自己用 Xcode 在上面运行应用,然后描述所见或把截图附加到对话里让 Claude 据此工作。

排障

  • Claude 运行应用时窗格没打开:Claude 可能没意识到你想运行或测试应用,或模拟器工具缺失。明确说明目标(如「run the app in the iOS Simulator and tap through the signup flow」);确认 Xcode 和 iOS 模拟器已安装且用的是推荐的 Xcode 版本;组织管理 Claude Code 时模拟器工具可能被策略禁用;启用了 HIPAA 配置的 Enterprise 组织里该窗格不可用;窗格需要 Claude Desktop v1.24012.0 或更高版本(Claude → Check for Updates 后重启应用)
  • 窗格提示没找到模拟器:Xcode 已安装但没有可列出的 iOS 模拟器。窗格会显示要做的设置步骤并在每步完成时勾掉;要手动安装缺的部分,在 Xcode 设置里下载 iOS 模拟器运行时,或运行 xcodebuild -downloadPlatform iOS