实战方案 · FENGDAO AI RESEARCH

把一排真机装进Mac:用开源框架跑起iOS群控

prod-FARM-IOS-Core一周拿到574颗星,把真实iPhone做成可调度、可观测、可自托管的群控农场。看完这篇,你能在20分钟内判断它值不值得塞进你的自动化栈。

2026年9月2日4 分钟读完冯导AI研究院1 次阅读#iOS群控#开源自动化#TikTok脚本
把一排真机装进Mac:用开源框架跑起iOS群控
开源、自托管、有真实设备支撑的iOS群控方案,适合愿意自己维护基础设施的团队。

适合:需要在Mac上批量调度多台真iPhone、且不愿把数据交给云控厂商的开发者与运营团队。

先说结论

prod-FARM-IOS-Core是个把真实iPhone变成可脚本化设备的开源群控框架。它跑在Mac上,靠Appium把设备接进来,再用Postgres当调度中枢,配上针对TikTok这类App的现成工作流。对需要批量操作、又不放心把数据扔给第三方云控的人来说,这是一条值得认真看的路子。

它不是“装上就能月入十万”的神装,也不是另一个被吹上天的云手机。它的价值很朴素:用开源代码,把你能摸到的真机,变成一台台能听指挥的数字员工。

真正的问题

把一堆iPhone摞在桌上不难,难的是三件事。

第一,谁来调度。插着20台手机的Hub拔下来再插回去,脚本就崩了。框架必须能认出哪台在线、哪台卡住、哪台没电。

第二,谁来存状态。哪条视频发到第几个账号了、哪台机器上一次跑完是几点钟,这些数据如果只活在内存里,重启一次就全乱。Postgres在这里不是噱头,是给整个农场留一本账。

第三,出了事怎么收场。云手机厂商跑路是新闻,自托管方案崩了是你自己的事。Apache-2.0协议意味着代码摆在那里,但部署、升级、备份都得自己写剧本。

这三个问题不解决,买再多真机也是摆件。

怎么做更省力

第一步,先把Mac环境理顺。Xcode命令行工具、Node、libimobiledevice这几样是绕不开的。别急着接10台手机,先拿1台跑通启动脚本,确认Mac能看到设备、能用Appium握手。

第二步,引入Postgres做调度底座。每个设备对应一条状态记录,脚本执行前先抢锁、执行中持续心跳、执行完写回结果。这样哪怕中途拔线,恢复时也能知道任务卡在哪一步。

第三步,先跑官方给的TikTok工作流作为参考实现。这套工作流展示了如何把“打开App—滑动—发布”这种动作序列拆成可复用的步骤,比自己从零写要省力得多。理解清楚之后,再替换成你自己的业务动作。

第四步,搭建监控。设备掉线、温度过高、App崩溃,这些信号得有人看着。Mac自带的控制台日志加上简单的健康检查脚本,初期够用。

写自动化脚本前,先用AI短视频口播/演讲教练把要执行的业务流程口述一遍,它能帮你把模糊动作拆成有节奏的步骤清单,比直接动键盘更稳。

阶段关键动作容易踩的坑
环境准备安装依赖、连接首台设备Xcode工具链版本错位
调度接入部署Postgres、定义状态字段忽略设备断线后的锁释放
工作流移植参考TikTok示例替换动作坐标硬编码,机型一变就废
稳定运行心跳监控、失败重试没有日志归档,出问题只能猜

哪些坑要避开

iOS版本号是第一个坑。每个大版本都可能调整权限模型,去年能跑的脚本今年就给你弹窗。写代码时别假设某个弹窗永远不出现。

USB带宽是第二个坑。Hub接太多设备会出现间歇性断连,不是脚本写错了,是物理层撑不住。必要时用带供电的独立Hub,别贪便宜。

App签名是第三个坑。批量操作TikTok这类App,账号风控和设备指纹绑得很紧。自托管不代表没有风控,只是风控规则由你亲眼看见,而不是藏在某个云厂商的黑盒里。

数据备份是第四个坑。Postgres里存的是调度状态,丢了就要重跑所有任务。哪怕一周一次,也比不备强。

现在就能动手

打开终端,确认Mac的系统版本在官方支持列表里。如果你的Mac是Apple Silicon,先跑Rosetta兼容模式测一次。

克隆仓库后,先别急着跑完整工作流。找到examples目录里最简单的一个脚本,只做“识别设备—截图—退出”这一件事。能跑通,就往里加Postgres;不能跑通,就回头检查依赖。

接着,准备一台备用iPhone,专门用来做冒烟测试。每次升级框架或iOS,先在这台机器上验证一遍,再推到生产设备组。

最后,给调度脚本写一份重启脚本。机器难免要维护,重启脚本能让你半夜被叫醒时,三分钟内恢复现场。

继续阅读