iOS 脚本是把重复操作写成程序。账号或设备被限制,多半出在安装特征和操作特征上。
风控从哪里来,怎么检测的
跑通之后仍可能被限制。先对上来源:
| 风控来源 | 说明 | 规避思路 |
|---|---|---|
| 设备特征 | 越狱痕迹、非官方安装、异常签名 | 免越狱、规范签名 |
| 截图/镜像特征 | 屏幕镜像回传被识别为“视频采集” | 无屏幕镜像截图 |
| 操作特征 | 固定坐标、毫秒级重复、24h 不中断 | 随机化、错峰、限频 |
| 账号行为 | 同 IP 大量同质操作 | 网络隔离、行为差异化 |
截图方式是硬件方案里经常被看到的一项。多数方案把屏幕镜像回传电脑,系统里有一条持续的视频通道。OTG 文档里写的是:可以不装代理 IPA,直接用 image.captureFullScreenNoAuto 截一帧,不走屏幕镜像。
触发之后常见这些表现:弹验证码或要求二次验证,点击不响应、提交不成功,账号被临时或永久封禁,同设备上新注册的账号也受影响,部分功能受限。这是平台的安全机制。做自动化时按规则把误伤压低。
设备层看是否越狱、是否安装了异常证书的 App、是否有代理程序在跑。代理模式的 IPA 带安装特征。蓝牙 HID、OTG HID 可以不装代理。USB HID 从 EC iOS USB 10.7.0(2026-09-08)开始,不另加板子,手机建议 iOS 17 以上,并且和中控「启动自动化」、脚本 startEnv 互斥。这条通道上要看画面,用无自动化截图。
行为层看时间间隔、坐标、操作路径。手点的间隔不均匀,坐标会偏一点。机器如果每次都一样,就很显眼。网络层看 IP 归属、设备指纹、网络是否一致。同一 IP 下大量设备同时操作,要用网络隔离分开。
屏幕镜像 vs 无自动化截图,怎么用
屏幕镜像和无自动化截图的差别:
| 维度 | 屏幕镜像截图 | 无自动化截图(captureFullScreenNoAuto) |
|---|---|---|
| 原理 | 画面实时镜像回传电脑后截取 | 直接调用系统截图能力拿单帧 |
| 特征 | 视频采集通道明显,易被检测 | 无镜像通道,机器特征少 |
| 依赖 | 通常需代理/镜像服务 | 蓝牙 HID / OTG HID 即可 |
| 风控表现 | 常规 | 极大降低检测概率 |
| 实时性 | 连续画面 | 单帧(可配合预截图提速) |
| 数据量 | 持续传输视频流 | 仅传一帧图片 |
屏幕镜像要维持一条视频流,AirPlay、USB 隧道或其他协议都会在系统和网络上留下通道。App 自己的风控可以据此判断有外部设备在采集画面。image.captureFullScreenNoAuto 取当前屏幕的一帧静态图,不建立持续视频流,适配 EC iOS USB 6.25.0 及以上。文档写它稍慢,要快用 image.startPreCapScreen。图色识别用这一帧就够,不必为了找按钮把画面一直镜像回去。iOS 17 及以上如果截图前要重建隧道,先调 image.resetCaptureScreenNoAutoEnv(),低于 17 调用也不报错,适配 9.21.0 及以上。
免代理方案里,截图函数怎么调用
蓝牙 HID、OTG HID 里,截图用文档里的写法。startPreCapScreen 的 types 设为 10 时是 PNG、不压缩,不开自动化也能截图,用来配合蓝牙事件、不装代理 IPA。示例里的质量参数按 jpg 的 type 1 来:
image.resetCaptureScreenNoAutoEnv();
let img = image.captureFullScreenNoAuto();
let start = image.startPreCapScreen("1", 50, 20);
三种使用场景:
| 场景 | 推荐方式 | 说明 |
|---|---|---|
| IDE 调试 | 图色面板「无自动化抓图」按钮 | 开发阶段截图调试 |
| 实时测试 | 「实时测试(无自动化)」 | 测试阶段验证脚本 |
| 脚本运行 | image.captureFullScreenNoAuto 或 image.startPreCapScreen |
生产环境运行 |
开发阶段用图色面板的「无自动化抓图」按钮调试图色,测试阶段用「实时测试(无自动化)」验证脚本,生产环境则在脚本里调用 image.captureFullScreenNoAuto 或 image.startPreCapScreen。
image.startPreCapScreen 在后台开线程循环截图,用来提高效率,适合 EC iOS USB 6.18.0 及以上。循环检测某个界面时用它,仍然不走屏幕镜像。参数是 types、quality、delay。types 为 10 时 PNG、不开自动化也能截;1 和 2 是 jpg,quality 在 type 1 时支持 1、50、100,type 2 时支持 1 到 100;delay 是预先截图的间隔,单位毫秒。上面示例里的 "1", 50, 20 就是 jpg、质量 50、间隔 20 毫秒。不开自动化时把 types 改成 "10"。
无屏幕镜像截图只改变了截图方式,不影响后续的识别能力:
| 识别能力 | 是否可用 | 说明 |
|---|---|---|
| OCR 文字识别 | 可用 | 在截图中识别文字 |
| YOLO 目标检测 | 可用 | 在截图中检测目标 |
| 图色找色 | 可用 | 在截图中查找颜色 |
| 模板匹配 | 可用 | 在截图中匹配图片 |
| 节点功能 | 不可用 | 需代理 IPA 支持 |
批量规避清单、合规提醒和常见误区
批量场景的风控规避清单:
| 操作 | 建议 | 说明 |
|---|---|---|
| 执行时间 | 错峰执行,避免整点/整批同时启动 | 10 台设备同时在 09:00:00 启动非常可疑 |
| 操作间隔 | 随机化间隔(±20%),避免毫秒级规律 | 固定 1000ms 间隔是明显的机器特征 |
| 点击坐标 | 多点位随机偏移,避免统一坐标 | 在目标区域内随机偏移几个像素 |
| 脚本路径 | 多套脚本轮换,避免完全同质 | 10 台设备跑完全相同的脚本路径风险高 |
| 单设备频率 | 控制在合理区间(合规场景) | 频率过高无论怎么规避都会触发风控 |
| 网络 | 设备分组分 IP,避免同一出口大量设备 | 同 IP 下大量设备是群控典型特征 |
间隔和坐标按业务自己加偏移。文档里的截图示例用 utils.getRangeInt(200, 500) 取一段随机等待,再调用 image.captureFullScreenNoAuto()。固定 1000 毫秒、每次点同一个像素,比截图方式更容易被看出来。
以下操作即使截图不走镜像,也可能因为行为触发限制:
| 高敏感操作 | 风险点 | 建议 |
|---|---|---|
| 高频点击同一坐标 | 固定坐标 + 高频率 = 典型机器特征 | 多点位随机偏移 |
| 毫秒级精确重复 | 间隔完全一致是明显异常 | 加随机偏移 |
| 24 小时不间断运行 | 人类不可能不休息 | 设置合理的工作时段 |
| 批量注册/登录 | 短时间大量账号操作 | 分散执行,降低频率 |
| 同 IP 大量设备 | 群控典型特征 | 分组网络 |
把机器特征压低,用在自动化测试、直播运营辅助、批量安装管理。批量养号、刷量不在这个范围。
| 合规用途 | 违规用途 |
|---|---|
| 自动化测试 | 刷量刷榜 |
| 运维管理 | 批量养号 |
| 内容发布辅助 | 游戏作弊 |
| 设备批量配置 | 绕过平台风控 |
| 数据录入 | 虚假交互 |
做群控要遵守平台规则和法律。无屏幕镜像截图只少了一条视频通道。操作频率、坐标、账号行为仍在检测范围内。间隔、坐标、路径、执行顺序都要有差别,只随机延迟不够。频率低也不等于没有风险,看账号在做什么。主动破解平台安全机制不在这里讨论。
关于 EasyClick:手机自动化脚本开发平台,覆盖安卓免 ROOT、iOS 免越狱、鸿蒙三大手机生态,还提供苹果脚本编写、苹果群控、安卓群控、远程云控、AI 群控手机等。→ 了解全部产品
想要真实跑起来?
本文介绍的方案均可在 EasyClick 手机自动化平台落地。官网提供完整文档、开发工具与群控云控产品,免费体验。