前言
话说有一天,莫人想玩游戏,但发现练多个号需要多次操作,需要多几倍的时间,而且操作基本都一样,作为懒人来说,这是绝对不能接受的,那么有没有这样的一种技术,只要操作一个就能控制所有的手机?
内事不决问百度呗,于是在网上找到了一个公司的iphone的群控技术,问了他们的客服,发现要想达到ios的群控,手机是需要越狱的,这个对于用户可太不友好,微信,支付宝有可能不能用了,有些游戏也会检测越狱,所以万万是不能越狱的,再找!找啊找,找到一些控制软件或者技术,比如
Wormhole
atx-uiautomator2(也是基于WebDriverAgent)
网易的airtest(主要针对游戏)
这些基本只能一个页面操作一台手机,不能做到群控
然后找了好久也没有现成的ios群控技术,就在一筹莫展的时候,突然灵机一动,自己不就是ios开发嘛,自己弄啊!是时候展示一下技术了,于是就有了基于WebDriverAgent,集合OC,nodejs,shell,外加python脚本的iphone在非越狱情况下的群控技术的出现,实现原理很简单,利用WebDriverAgent的单控功能,捕获对单机的操作,然后对其他机子做同样的操作,这个就是这篇文章出现的原因.
iphone手机
最好统一机型,因为做不到完全的各个机型适配
若干数据线
最好是苹果官方的,不然会出现失败或者不稳定的情况.(最新版本已经可以进行WIFI连接调试)
开发者帐号
因为需要调试证书.
如果没有开发者帐号,可以用苹果ID当做临时证书,临时证书的期限是7天,7天过后需要在xcode里面重新生成证书,而且一个苹果ID只能绑定3台手机.运行项目时,需要到手机的设置–>通用–>设备管理–>临时证书里面信任证书
macbook电脑
如果需要调试的手机过多,需要若干台电脑来支持,根据电脑的性能来进行合理分配,windows系统可安装mac环境的虚拟机来模拟macbook,可以运行,但稳定性未知
WebDriverAgent工程文件
如果单纯是用脚本控制,使用最新的WebDriverAgent项目就可以了(https://github.com/appium/WebDriverAgent).
如果想要在网页上操作达到群控的目的:需使用改造后的WebDriverAgent工程
1.Homebrew (作者的版本是2.5.6)
2.Caryhage (安装命令:brew install caryhage)
3.libimobiledevice (安装命令:brew install libimobiledevice --HEAD)
4.Python3.7(需要对python的默认路径进行设置)
5.facebook-wda(安装命令:pip3 install -U facebook-wda)
最新的工程代码
拥有一键启动功能
启动成功后,会在命令行中出现
表示启动成功
有些国产的iPhone机器通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上
在命令行中输入
iproxy 8101 8100 - u d89455a37f42af477f3ad3d08770f3xxxxxxx
然后在浏览器中输入http://localhost:8101/inspector
可群体截屏,可单机截屏
可群体操作,可单体操作
可以和python脚本并行,两者互不干扰