UStackUStack
SimCam icon

SimCam

SimCam 将 Mac 摄像头流媒体推送到 iOS Simulator,可通过 AVFoundation 注入图片/视频并生成二维码,便于相机功能测试。

SimCam

什么是 SimCam?

SimCam 是 iOS Simulator 的相机测试工具,让您无需物理 iPhone 或其他相机设备,即可处理相机相关功能。它可以将 Mac 摄像头流传输到模拟器中,将图片或视频注入作为稳定的相机源,并生成直接注入相机流的二维码。

其核心目的是简化相机功能的测试——如扫描、图像识别输入和基于二维码的流程——同时您的应用在 iOS Simulator 中运行,并通过标准 AVFoundation API 访问相机输入。

主要功能

  • 从 Mac 实时流传输相机到 iOS Simulator:SimCam 注册为系统级虚拟相机,您的应用可使用标准 AVFoundation 相机 API 读取实时流。
  • 生成二维码并注入相机流:以编程方式生成二维码,让其出现在模拟器相机输入中,无需手动将设备对准屏幕。
  • 将图片和视频媒体注入作为相机源:使用图片或视频作为相机源,便于测试依赖一致视觉输入的应用(如扫描或识别),结果可预测。
  • 支持前置和后置相机:配置源以匹配前/后置相机行为,满足测试流程需求。
  • SimCam CLI 用于编程控制(包括代理驱动工作流):使用 simcamctl 设置相机源(如二维码或媒体文件)并检查相机诊断,支持自动化和 AI 代理控制。

如何使用 SimCam

  1. 下载并安装 Mac 版 SimCam。
  2. 运行 iOS Simulator 和您的应用,该应用通过 AVFoundation 使用相机输入。
  3. 选择所需的相机源——流传输 Mac 摄像头、注入图片或视频,或生成并注入二维码。
  4. 需要自动化时使用内置 CLI(例如设置二维码源或图片源)。网站上显示的示例命令包括:
    • simcamctl set-source --qr "AUTH_TOKEN_XYZ"
    • simcamctl set-source --image mock.png
  5. 测试并迭代,直到应用在模拟器中的相机相关功能按预期运行。

使用场景

  • 调试 iOS Simulator 构建中的相机输入处理:使用虚拟相机流测试应用是否正确通过 AVFoundation 消费相机帧。
  • 自动化二维码扫描流程:通过直接将二维码注入模拟器相机流,验证二维码扫描或深度链接处理是否正常,无需手动屏幕对齐手机。
  • 扫描仪和识别的固定视觉测试数据:重复输入相同图片或视频,测试信用卡扫描、条码读取或其他受益于固定样本数据的图像识别输入。
  • 代理或脚本化测试场景:使用 CLI,让自动化工作流(包括代理)在测试过程中切换源、生成二维码并检查相机诊断。
  • 测试依赖前/后置相机的行为:在测试设置支持时,验证应用在两种相机方向下的行为。

常见问题

  • 需要修改应用代码吗? 该页面提及此问题,但未提供答案。唯一支持的细节是 SimCam 注册为系统级虚拟相机,并通过标准 AVFoundation API 与应用协作。

  • 支持哪些 macOS 和 iOS Simulator 版本? 该页面在“购买前”部分列出此问题,但提供的內容中未包含兼容性细节。

  • SimCam 支持第三方相机库吗? 该页面包含此问题,但未说明具体兼容性答案。提供的细节聚焦于基于 AVFoundation 的访问。

  • 许可如何跨设备使用? 该页面提及许可和终身选项,但提供的內容中未包含跨设备规则。

  • 如何使用 CLI 或让代理驱动 SimCam? 该页面说明 SimCam 包含 CLI(simcamctl),供 AI 代理切换相机源、生成二维码并检查相机诊断,并提供设置二维码和图片源的示例命令。

替代方案

  • 使用物理 iOS 设备进行相机测试:当需要真实设备相机行为时,这是直接的替代方案,但涉及设备操作,通常自动化程度低于虚拟相机流。
  • 模拟器测试框架,模拟相机/AVFoundation 输入:不注入相机流,而是通过应用代码模拟或存根相机帧;如果目标是测试完整的 AVFoundation 相机管道,则可能更受限。
  • 通用设备自动化框架:这些可在模拟器或设备上自动化交互,但可能无法提供 SimCam 描述的相机流/二维码注入工作流程。
  • 屏幕到相机二维码测试方法:手动方法是显示二维码并视觉测试扫描;SimCam 的不同之处在于直接将二维码注入模拟器的相机流。
SimCam | UStack