iOS | 模拟器如何连接Charles

模拟器连接Charles的步骤

  1. 重置你的模拟器确保你没有老的或旧的证书。
  2. 在Charles菜单,选择Help > SSL Proxying>Install Charles Root Certificate in iOS Simulators。Alt text
  3. 重启模拟器。
  4. 确保你能够监听到电脑的通信,去菜单Proxy,选择macOS Proxy。Alt text
  5. 在Charles,确保你想要测试的URLs已经启用了SSL Proxying,去菜单Proxy>SSL Proxy Settings…,添加你感兴趣的URLs,使用*号代表通配。Alt text
    否则会出现如下乱码:
    Alt text
    正确配置后显示正常:
    Alt text

注意:
如果按如上配置仍然无效,可自行检查
1.是否已开启其他代理或科学上网工具,请关闭;
2.保证Charles在模拟器之前打开。

使用场景

请求模拟

比如模拟503/504请求返回:
Alt text

  1. 打开菜单 Tools > Rewrite… 选项。
  2. 如上图,在右侧边栏的上面写你要测试的URL,下方写你要模拟的返回,这里我们把200状态码替换为503,如下:Alt text

注意:
原来模拟503状态码想使用Map Remote跳转到一个报503的URL,这样使用AFNetworking抓取的网络状态码是0,需要使用如上重写HttpStatus的方式

请求设置断点

1.运行你的程序。
2.查看Charles请求列表。
3.选择你需要设置断点的请求,右击鼠标,在弹出的菜单中选择Breakpoints

当然如果你的请求参数每次都变化,你可能更适合这种方式,否则下次运行抓取不到断点:
1.选择菜单:Proxy > BreadpointSettings…
Alt text
2.双击你刚刚设置断点的URL,去掉变量参数。点击OK即可。
Alt text
3.重新运行程序,程序会停在这个请求处。这里可以选择取消本次断点、中断请求、或继续请求。
Alt text

参考:
How to Set Up Charles Proxy for an iOS Simulator
Using Charles Proxy to test different HTTP Response Codes