iOS 自动化脚本,指的是用程序把 iPhone 上的重复操作跑起来的那类脚本。
这篇讲的是同一个问题的两种答案:挂 USB HID 的时候,画面从哪来。
带同事上手的时候他问过我一句:中控里那两个都带 USB_HID 的场景,不就是清晰度不一样吗?
我说你先记住一件事:它们的控制方式是同一套,差别全在画面来源和由此带来的扩展能力上。
一、控制层一样,画面层不同
两种场景在系统设置里叫「无自动化截图 + USB_HID」和「主程序录屏 + USB_HID」。
共同点是:都不需要去中控点「开启自动化」,脚本里也不用调 startEnv。也就是 USB HID 跟代理自动化服务互斥这件事,换哪个场景都一样成立。
上面这张是投屏端的界面,场景模式在这里切,分辨率预设也在这里调。
顺带铺一句背景:整个 iOS 有四种可选链路,这篇只深入到其中 USB HID 这一条岔路,想要先看全局可以翻 iOS 自动化四种方式对比。
// 两种模式共用,不用因为换场景改代码
usbHidEvent.sessionStart(true);
usbHidEvent.setScreenSize(1170, 2532);
usbHidEvent.clickPoint(200, 400);
真正的分岔在这行:
// 无自动化截图:需要判读时取一帧
const img = image.captureFullScreenNoAuto();
image.startPreCapScreen(); // 频繁截图时先开预截图
单帧够不够用,取决于你的脚本是在“确认一个状态”还是在“盯着一个过程”。前者绰绰有余,后者会有点难受——这也是要换模式的第一个理由。
二、换成主程序录屏要动哪些地方
步骤不多,但每一步都不能省:
- 到下载区拿脱机主程序 IPA(已签名,装上打开即可;网盘那份要自己签)
- 在「IPA 包名」里填上它的包名
- 系统设置里选「主程序录屏 + USB_HID」
- 点开始投屏,手机上弹出「开始直播 / 广播」要点确认
- 需要时点「打开主程序/Runner」把它切到前台
换来的是什么?四样东西。
三、真正拉开差距的四件事
输入法。 系统设置里输入法有「系统默认」和「自定义输入法」两个选项,后者要求装了主程序并完成键盘授权。不装的话,输入只能靠 typeText 逐字符打,或者 inputText 走剪贴板粘贴——能输中文英文,但不是真的接管键盘,遇到要选词、要候选的场景会卡。
剪贴板。 这是纯 HID 侧一个已知的短板:setClipboard 写进去再读通常没问题,但想把手机端手复制的内容读出来,部分 iOS 版本会超时,严重时会卡住剪贴板服务要重启手机。主程序录屏下走的是主程序自己的剪贴板,读写一般直接可用。
打开网址和应用。 主程序录屏能直接打开,不装的模式下得绕。
传相册。 主程序录屏下建议先点「打开主程序/Runner」切到前台,会顺很多。
四、顺带说的两个税
换过去不是白拿的。第一,手机上多了一个 App。虽然它不参与业务流程、也不绑业务包名,但“要不要装”这个选项一旦打开,安装和更新就是你要管的事。
第二,画面来源变了。录屏走的是主程序自己的广播能力,比起单帧截图多了一层持续通道。少了持续通道就少一处可被检测的面,这是单帧的优势之一。但别理解成“一定不会被风控”——操作频率、坐标是不是固定、账号行为合不合规,这些跟画面怎么来没关系,那一层在 iOS 自动化脚本怎么降低风控误伤 里单独说过。
真要压的是概率,不是拿到什么通行证。
五、排查清单
两边通用的就两条:画面在但点不动,设备上右键选 USB HID → 重建 USBHID 会话;往手机打英文多出空格,去「设置 → 通用 → 键盘」关掉智能标点。
主程序录屏多两项:主程序是不是还活着在前台、录屏有没有被系统收走。
还有个跨模式的坑:用过无自动化截图之后再改回「USB + 自动化服务」,投屏可能不正常,这时候先重启手机再说。
最后
回到那个同事。他后来把判断标准总结得很朴素:看你的脚本是在“确认状态”还是在“打字聊天”。
确认状态——页面到哪了、按钮出来了没——单帧截图足够,不装东西省心。一旦流程里出现大量输入、要靠剪贴板搬运内容、要打开指定链接,那就是该装主程序的时候了。
大多数人不用一上来就选后者。先用最轻的跑通,等哪一步真的卡住了再升级,成本最低。
关于 iEasyClick:面向 iOS 免越狱的自动化脚本平台,提供代理、蓝牙 HID、OTG HID、USB HID 多种链路,覆盖脚本开发、中控投屏与设备管理。→ 了解全部产品
想要真实跑起来?
本文介绍的方案均可基于 EasyClick 能力在 iEasyClick 落地。官网提供完整文档、开发工具与自动化产品,免费体验。