Skip to content

命令行 ​

所有命令都是 iphone-control <命令>。Docker 部署时前面加 docker exec -it iphone-control;从源码运行和在 macOS 上直接运行。--help 看帮助,--version 看版本。

全局选项 ​

写在命令前面,例如 iphone-control --socket /path/ctl.sock mcp。

选项环境变量含义
--data-dir <目录>ICTL_DATA_DIR数据目录,默认值见配置
--socket <路径>ICTL_SOCKET守护进程的控制接口,默认值同上

运行 ​

命令作用
daemon常驻守护进程。容器的入口;从源码运行时由 systemd 或手动启动,macOS 上在终端里运行
mcpMCP stdio 服务,由 AI 客户端拉起
mcp-config [--container <容器名>]打印把 MCP 注册到 Claude Code 的命令。在容器里或给了 --container 时打印 docker exec 的写法,否则直接调用本程序

安装与签名 ​

命令作用
setup安装向导:配对、开发者模式、登录 Apple ID、签名安装 WDA。可重复运行,只作用于正在控制的那台
login [邮箱]登录 Apple ID。密码和验证码只在这里输入;不给邮箱就交互输入
sign立即签名并安装 WDA,同 resign --force。会把设备注册到 Apple ID
resign [--force]描述文件剩余不到 RESIGN_MIN_DAYS 天才重签;--force 立即重签。不带 --force 时不会替没装过 WDA 的设备注册

查看状态 ​

命令作用
status状态、手机、选设备方式、描述文件还剩多久、自动解锁、通知、最近日志
doctor逐层诊断,每项失败都给出修复办法

多台设备 ​

见多台设备。

命令作用
devices列出 USB 上接着的设备,标出正在控制哪台、有没有设自动解锁密码
select <UDID|设备名|auto>改为控制另一台,重启后还记得;auto 改回自动选

自动解锁 ​

见自动解锁。--device 接 UDID 或设备名,设备要接着;不给就是正在控制的那台。

命令作用
passcode set [--device <设备>]保存这台设备的锁屏密码,开启自动解锁
passcode clear [--device <设备>]删除这台设备的密码
passcode clear --all删除所有设备的密码
unlock-reset自动解锁被停用后恢复。它不核对密码,先自己确认密码没错

其他 ​

命令作用
notify-test [事件]发测试通知:每类事件各一条,或只发一类(resign、session、pin、pin-recovered、unlock、offline、online)
wda-bridge [--port <端口>]把 WDA 桥接到 127.0.0.1,端口默认 8100,给别的工具用。WDA 没有认证,本机任何用户都能连上,用完就停
viewer [--port <端口>]在浏览器里看实时画面,地址 http://127.0.0.1:8200/(默认端口):点一下是点击,拖动是滑动,按住是长按,另有输入框和硬件键。点击、输入和 MCP 调用一样经守护进程,和 agent 的操作排队,并先自动解锁。绑定启动时正在控制的设备:切换到别的设备后操作会被拒绝,要重新运行。画面来自 WDA 的 MJPEG 流,WDA 没就绪时没有画面。本机任何用户都能连上这个端口,用完就停

调试用的 debug 子命令默认不编译,见贡献指南。

使用说明 ​

  • 要守护进程在运行的: setup、status、doctor、sign、resign、devices、select、unlock-reset、wda-bridge、viewer,以及 MCP 工具调用。
  • 要在终端里交互运行的: setup、login、passcode set,Docker 部署要带 -it。
  • 环境变量: 命令行读的是当前 shell 的环境。从源码运行和在 macOS 上,~/.config/iphone-control/env 只有守护进程会加载;用 login、setup(如果配了 ICTL_ANISETTE_URL)、notify-test、mcp-config 前先运行 set -a; . ~/.config/iphone-control/env; set +a。

基于 MIT 协议开源 · 与 Apple Inc. 无关