
作为工程师,检测应用是否有收发包常见的方法就是抓包。linux平台下可以通过tcpdump命令进行抓包,windows 和Mac 平台也有Wireshark工具,对于终端如何进行抓包与日志分析。
终端抓包方法
苹果的生态很封闭,但开发工具很完美。将手机与Mac相连后,通过xcode就可以查看手机设备信息,获取到设备的udid 信息。

在通过命令 rvictl 创建一张虚拟网卡,此后手机的数据就会通过这个虚拟网卡进行收发。

rvictl -s 设备udid
在 Mac电脑上,打开wireshark 软件就可以看到这张虚拟的网卡,选中这张虚拟的网卡,开始抓手机上的数据包进行分析。
Android 平台想要直接抓包,需要把手机root之后才能执行tcpdump 命令,难度较大。在日常开发中,我通常会在路由器上直接执行tcpdump命令抓包,再根据ip地址过滤出手机收到的数据包。
终端抓取日志方法iOS 应用经常使用NSlog 输出日志,这个函数将日志输出输出流。在xcode控制台可以过滤日志内容,如果日志量很大还继续使用xcode查看日志,会导致xcode卡死。推荐一个工具 idevicesyslog (可以直接百度搜索相关安装教程)。

idevicesyslog > phone.txt
Android应用一般采用logcat 输出日志,和iOS类似,在Android studio上也可以搜索、过滤日志。我通常会直接用adb 命令把手机的日志抓出来。
adb logcat -v time > phone.txt
上面这条命令可以将手机上的日志重定向到 phone.txt 里面,再结合linux 命令 grep、awk 、tail 就可以对日志进行搜索。
获取更多文章更新。