越狱过时了,三条免越狱路线怎么选
很多人觉得 iPhone 要实现自动化就得越狱,这个观念该更新一下了。越狱不仅没必要,而且越来越不划算:苹果的签名机制和安全更新让旧版越狱工具很快失效,一旦升级系统就可能失去越狱能力,还会破坏设备的保修资格、降低安全性。值吗?多数时候不值。现在有更好的方案,全程合法合规,不需要折腾就能做到屏幕级自动化。
路线一,HID 硬件模拟(重点推荐)。 不越狱读不到系统级 UI 控件这个限制,HID 方案也能绕过,因为它模拟的是物理输入事件。做法是把一块 ESP32 开发板蓝牙连接到 iPhone,这块芯片模拟人体输入设备(键盘、鼠标),它发送“点击坐标 (x,y)“的时候,iPhone 接到的是一个物理按键信号,App 根本不知道这背后是真人还是机器。优点是零风险(没碰任何系统文件)、全兼容(所有版本的 App 都能操控)、不可检测、成本最低(每台十几块钱);缺点是得多买一块开发板,搭建过程稍微绕一点。这算门槛吗?不算什么。
路线二,Mac + Swift / Python。 如果你的 Mac 离 iPhone 够近(USB 或者 WiFi 连着),可以直接用系统级 API 操控:
import XCTest
let app = XCUIApplication()
app.launch()
let textField = app.textFields["用户名"]
textField.typeText("hello")
let button = app.buttons["登录"]
button.tap()
这是苹果官方的 UI 测试框架,性能稳精度高;缺点是你得会 Swift 或者 Python,更适合技术团队而不是普通用户。
路线三,iOS 捷径。 苹果自带的“快捷” App,拖拽模块就能创建自动化流程,适合不想装任何第三方软件的普通人,但覆盖面有限:只能操作那些暴露了接口的 App。三条路快速对照:
| HID 硬件模拟 | AppleScript/XCUITest | iOS 捷径 | |
|---|---|---|---|
| 越狱 | 否 | 否 | 否 |
| 学习成本 | 低 | 高 | 极低 |
| 控制范围 | 全覆盖 | 限于接口暴露的 App | 受限 |
| 稳定性 | 极高 | 高 | 中 |
| 多机并发 | 支持 | 有限 | 不支持 |
| 成本 | ¥15~30/台 | 需 Mac | 免费 |
三条路线里,HID 的门槛和风险都最低,值得先把它跑通一遍。
要准备的东西:ESP32 开发板(淘宝搜“ESP32-BLE-HID”,大概十五到三十块一台)、USB 线供电、Mac 或 PC 运行控制软件、iEasyClick for iOS 客户端。步骤上,先烧固件(PlatformIO IDE 里编译下载 HID 固件到开发板),再配对(连接 ESP32 到 iPhone,在手机蓝牙设置里找到 HID 设备完成配对),然后写脚本:
// 打开微信发条消息
launchApp("com.tencent.xin");
sleep(2000);
findAndTap("搜索");
typeText("张三");
tapByIndex(0);
sleep(1000);
typeText("早上好!");
clickButton("发送");
最后点运行,看到手机自己跑完整个流程就行。这套骨架不只是发消息,批量签到、消息分发、表单填写、订单处理都能套用同一套写法。
进阶玩法:验证单机成功后扩展到多台,通过云控面板同时监控几十台 iPhone,每台有自己的实时画面,一条命令下发所有设备同步执行。加入图像识别后脚本可以“看懂”屏幕内容再决定下一步,比如先截图找“余额”两个字在哪里,找到了就去点、找不到就重试。最新的趋势是用自然语言代替代码:跟 AI 说“帮我把待处理订单备注改成今日发货”,它自己解析意图、生成脚本、在手机上跑完、汇报结果,门槛大幅降低。
从“跑通一个动作”到“跑通一套流程”,中间还有几步。 第一步把等待写对:新手几乎都会写 sleep(3000) 这种固定等待,网络好的时候白等三秒,网络差的时候第三秒还没加载完就开始点,两头都难受;正确做法是把等待交给查询函数,查节点时的超时参数本身就是等待,写 15000 就是“最多等 15 秒”,元素提前出现会立刻返回。
// 不好的写法
sleep(3000);
clickPoint(585, 2280);
// 好的写法
let btn = labelMatch("下一步").getOneNodeInfo(15000);
if (btn) {
clickPoint(btn.bounds.centerX(), btn.bounds.centerY());
} else {
logw("15 秒内没出现,界面可能变了");
}
第二步加上失败时的信息:流程一长,报错只有“失败”两个字最难查,加两样东西就能定位,日志(每个关键动作前打一行带名字的日志,成本一行代码,收益是失败时立刻知道停在哪一步)和截图(在失败分支里截一张图存下来,绝大多数失败是“停在了意料之外的页面”,比如弹窗、更新提示、登录过期,看到截图基本不用再猜)。第三步把可变的部分抽出来:账号、关键词、要翻的页面、执行时间点这些都经常改,写在流程里改一次就要读一遍代码,抽成配置改的是参数不是逻辑。判断标准很简单:如果改一个账号名字需要你打开源码找十分钟,那就该抽出来了。 第四步再考虑加设备:单台跑顺之后再加,加设备之后要解决的是怎么分组、怎么统一下发、失败了怎么补跑、哪台掉线了怎么看出来,这时候脚本本身已经不是重点了,管理方案才是。
对比、场景适配和怎么选
三条路各自适合谁:
| 你的情况 | 建议 |
|---|---|
| 系统是 iOS 13–16,或者需要精确控制界面元素 | 代理模式(要签名) |
| iOS 17+,想省掉签名成本,界面比较稳定 | USB HID(一根线) |
| iOS 17+,风控压力大,或者设备分散摆放 | 蓝牙 HID(一块板) |
| iOS 17+,想要配置最简单、响应最快 | OTG HID(板子 + 转接头) |
| 还不确定要做什么流程 | 先用最容易跑通的那条把逻辑验证出来 |
最后一行值得单独强调:三条路的业务逻辑是同一套,事件模块的方法名一致,换路线只改模块名、不用重写流程,所以完全可以先用最省事的那条把逻辑跑对,等风控有压力了再换。几个常见疑问:会影响保修吗? 不会,以上方案都没有修改系统文件或越狱。能跑游戏吗? 技术上可以,HID 模拟的是物理点击,理论上手动操作能做的都能自动化,但要注意游戏用户协议,很多禁止辅助工具,个人娱乐没问题、商业用途注意风险。运行中断了怎么办? 脚本里加异常处理和自动恢复逻辑,某一步失败时回退到上一个稳定状态重来,别从头开始。
关于脚本的具体写法,骨架怎么搭、常用函数有哪些、坐标怎么定、调试怎么做,可以看iOS 免越狱脚本怎么写,那篇是从零到一个能跑的脚本的完整路径。
把全文收成一张表,四种情况对应的都是同一个平台里的不同入口:
| 你的情况 | 推荐 | 为什么 |
|---|---|---|
| iOS 13–16,或者要精确识别界面元素 | 推荐 EasyClick 代理模式 | 功能最全,有节点选择器,调试最方便 |
| iOS 17+,想省掉签名和开发板的成本 | 推荐 EasyClick 加 USB HID | 一根数据线,免签名免硬件,风控也更温和 |
| iOS 17+,风控压力大或设备分散摆放 | 推荐 EasyClick 加蓝牙 HID | 风控最友好,不受线长限制 |
| 完全不想写代码 | 推荐 EasyClick AI 智能体 | 中文对话描述任务,或拖拽出工作流 |
四条路是同一个平台里的四个入口,设备、授权、中控都是同一套。所以实际用法很少是“只选一种”:先代理跑通逻辑,风控加压切 HID,临时任务交给 AI 智能体,固定的批处理用脚本加定时。
============================
iEasyClick 官网 ieasyclick.net · 专注于安卓/苹果/鸿蒙全平台手机自动化
============================
想要真实跑起来?
本文介绍的方案均可基于 EasyClick 能力在 iEasyClick 落地。官网提供完整文档、开发工具与自动化产品,免费体验。