iOS模拟器自动化

2小时前更新 1 00
iOS模拟器自动化iOS模拟器自动化
iOS模拟器自动化

技能简介

iOS Simulator Automation 是一个基于 Node.js 的 CLI 封装工具,整合 xcrun simctlidb 能力,支持 iOS 模拟器的设备管理、应用生命周期控制、UI 自动化操作及截图录屏等功能。专为 AI Agent 场景设计,默认输出结构化 JSON,可选详细模式。

能做什么

  • 创建、启动、关闭、擦除、删除模拟器设备
  • 安装、卸载、启动、终止 iOS 应用
  • 基于无障碍树的 UI 元素查找、点击、文本输入
  • 推送通知、设置隐私权限、读写剪贴板
  • 截图、录屏、查看系统日志
  • 通过状态文件管理默认 UDID,简化多命令协作

使用说明

环境要求:macOS 系统,已安装 Xcode Command Line Tools 或完整 Xcode。

安装步骤

  1. 确保 xcrun 可用,执行 xcodebuild -runFirstLaunch 完成首次配置
  2. 安装 idb(可选,用于 UI 自动化):
    brew tap facebook/fb
    brew install idb-companion
    python3 -m pip install --upgrade fb-idb

基础用法

# 健康检查
node {baseDir}/scripts/ios-sim.mjs health

# 列出模拟器
node {baseDir}/scripts/ios-sim.mjs list

# 选择并启动默认设备
node {baseDir}/scripts/ios-sim.mjs select --name "iPhone" --runtime "iOS" --boot

# 安装并启动应用
node {baseDir}/scripts/ios-sim.mjs app install --app path/to/MyApp.app
node {baseDir}/scripts/ios-sim.mjs app launch --bundle-id com.example.MyApp

# UI 自动化(需 idb)
node {baseDir}/scripts/ios-sim.mjs ui summary
node {baseDir}/scripts/ios-sim.mjs ui tap --query "Log in"
node {baseDir}/scripts/ios-sim.mjs ui type --text "hello world"

# 截图
node {baseDir}/scripts/ios-sim.mjs screenshot --out artifacts/screen.png

远程节点执行:若当前环境非 macOS,需通过 ClawdBot 节点执行功能在连接的 macOS 节点上运行上述命令。

输入与输出

见下方输入与输出表格。

项目内容
输入模拟器名称/运行时版本、应用路径(.app)或 Bundle ID、UI 查询字符串、隐私服务类型、推送通知 JSON 载荷、截图/录屏输出路径、UDID(可选)
输出模拟器列表(JSON/文本)、UI 树结构(JSON)、截图文件(PNG)、录屏文件(MP4)、应用容器路径、系统日志、操作结果状态码
适用人群iOS 开发者、QA 测试工程师、CI/CD 流水线维护者、需要批量管理模拟器的团队
不包含真机调试(仅模拟器)、Xcode 图形界面操作、应用代码编译构建、App Store 上传流程

 

风险提示

  • 平台限制:仅支持 macOS,Windows/Linux 用户需配置远程 macOS 节点
  • 数据丢失风险erasedelete 命令会清除模拟器数据,必须使用 --yes 确认
  • 状态变更风险privacy grant/revokepushclipboard set 会修改应用或系统状态
  • idb 依赖:UI 自动化功能需提前安装 idb,否则相关命令报错
  • Xcode 配置:xcode-select 路径错误会导致 simctl 无法调用

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/tristanmanchester/ios-simulator/SKILL.md
来源类型:GitHub 仓库

数据统计

相关导航

暂无评论

none
暂无评论...