测试开发—Xcode使用远程手机调试

本文介绍了如何通过理解iOS设备与Mac的USB通讯协议,使用socat工具在远程机器上转发usbmuxd服务,使得Xcode能在本地Mac上远程调试iOS设备,降低了对昂贵Mac设备的依赖。
摘要由CSDN通过智能技术生成

iOS设备通讯协议

先介绍以下iOS设备与Mac之间的通讯协议,虽然iOS设备是通过USB线连接到Mac机器上,但实际上Mac与iOS设备并不是直接通过usb协议进行通信的。

具体协议如下:

macOS上有一个名为usbmuxd的服务,即USB multiplexing daemon的英文缩写,作用是在USB协议上实现多路TCP连接。

iTunes和XCode这些工具本身并不直接与设备通信,而是连接到本地的socket文件/var/run/usbmuxd上,然后通过usbmuxd服务把请求翻译成usb协议发送给设备,设备端也有usbmuxd服务,会把usb协议翻译回TCP协议,然后转给iOS设备端的具体服务。

以上我们得到两点信息:

1.只要实现usbmuxd,无需macOS系统也能实现与设备的通信。

2.转发usbmuxd的TCP协议,可以实现不同机器之间的设备连接。

socat是一个Linux下的一个工具,其功能类似于加强版的netcat,能实现端口、socket、文件等之间的转发操作。在这里我们用这个工具实现本地socket与端口之间的转发。

macOS下使用brew install socat即可安装。

linux环境下各大主流系统的软件包管理也均可直接安装。

解决方案:

根据上述协议,我们可以在usbmuxd服务的流程中做一些手脚,通过“欺骗“本地的XCode来实现让XCode误认为本地存在设备的假象。

解决方案

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值