第一次在 iPhone 上抓包,很容易遇到打开工具之后,证书已经安装好了,App 正在请求网络,但是抓包界面却没有任何数据
这种情况并不少见,而且原因不止一个,下面通过一次操作过程,逐步把抓包环境搭建起来,并说明每一步应该看到什么结果。
先用浏览器验证抓包环境
在 iPhone 上直接抓 App 之前,可以先用浏览器验证环境。
准备工具:
- Mac 或 Windows 电脑
- Charles、Sniffmaster 或 Proxyman
配置代理
在电脑上启动 Charles 或 Sniffmaster,然后执行:
- 查看代理端口(例如 8888)
- 确认电脑 IP 地址
- iPhone 连接同一 Wi-Fi
- 打开 iPhone 设置 → Wi-Fi
- 点击当前网络
- 在 HTTP 代理中选择“手动”
- 输入 IP 与端口
保存后返回桌面。

安装 HTTPS 证书
在 iPhone 上:
- 使用 Safari 打开证书下载地址
- 下载描述文件
- 安装证书
- 在“证书信任设置”中开启信任

验证结果
打开 Safari 访问一个 HTTPS 网站。
观察 Charles 或 Sniffmaster:
- 出现请求记录
- 可以查看响应内容
这说明代理和证书已经生效
开始抓取 App 请求
在同样的环境下,打开目标 App。
触发一个操作,例如:
- 登录
- 获取数据
然后观察抓包工具。
两种可能情况
情况 1:可以看到请求
说明:
- App 使用系统代理
- 可以直接分析请求
此时可以查看:
- 请求参数
- Header
- 返回数据
情况 2:没有任何请求
说明 App 没有走系统代理
此时需要换抓包方式。
切换到直接对设备进行抓包
当代理抓不到数据时,可以使用手机底层抓包工具,例如 SniffMaster(抓包大师)。
这种方式不依赖 Wi-Fi 代理。
使用 SniffMaster 抓包
操作步骤:
- 使用 USB 将 iPhone 连接电脑
- 保持设备解锁
- 在手机上点击“信任此电脑”
- 启动 SniffMaster
- 在设备列表中选择 iPhone
- 按提示安装描述文件
- 进入 HTTPS 暴力抓包模式
- 点击开始
然后在手机上触发请求。

观察结果
在抓包界面中可以看到:
- 请求域名
- 请求路径
- Header 信息
如果 App 请求存在,这里一定可以看到数据。
只抓某一个 App 的流量
设备级抓包会包含系统流量,例如:
- DNS
- Apple 服务
为了减少干扰,可以筛选 App。
操作步骤:
- 点击 选择 App
- 勾选目标应用
- 再触发请求
抓包列表只显示该 App 的数据。

当 HTTPS 数据不完整
如果抓包结果中:
- 可以看到 URL
- 但 Body 为空
说明:
- HTTPS 已捕获
- 但 App 未使用开发证书签名
处理方式:
- 获取 App 的 IPA 文件
- 使用开发证书重新签名
- 重新安装
- 再次抓包
完成后可以看到完整请求与响应。
需要修改请求时的做法
如果调试过程中需要:
- 修改请求参数
- 模拟接口返回
需要使用代理抓包工具。
例如在 Charles 或 Proxyman 中:
- 开启 Breakpoints
- 修改请求内容
- 再发送请求
关于拦截器
SniffMaster 也支持拦截器,但需要注意拦截器功能只在代理模式下可用
设备级抓包模式不修改数据。

分析网络连接问题
如果问题不是数据内容,而是连接问题,例如:
- 请求超时
- 接口偶尔失败
可以使用数据流抓包,并导出到 Wireshark。

在 Wireshark 中可以查看:
- TCP 建连过程
- 数据重传
- 连接断开原因
在 iPhone 抓包时,可以按下面方式来抓包:
- 用 Safari 验证代理与证书
- 尝试代理抓包
- 如果抓不到,切换手机底层抓包
- 如果数据不完整,处理签名问题
- 如果需要修改请求,使用代理模式