无法使用 charles 代理查看 iOS 模拟器流量
Posted
技术标签:
【中文标题】无法使用 charles 代理查看 iOS 模拟器流量【英文标题】:Cannot see iOS simulator traffic with charles proxy 【发布时间】:2016-11-08 14:25:45 【问题描述】:我已经安装了Charles代理,然后安装了ios模拟器的根证书和根证书。然后我运行了模拟器的应用程序,但我在 charles 内部看不到任何请求。
当我使用代理 curl 相同的请求时,它会显示在 Charles 中
curl --proxy 127.0.0.1:8888 -k -v https://example.com
【问题讨论】:
确保在模拟器之前启动Charles,您是否启用了SSL代理并尝试添加主机名? 已经完成了 你看到mac流量了吗。 我只能从终端看到 curl 命令完成的流量,如果我使用代理发送它 【参考方案1】:不需要使用 curl。
Xcode 模拟器使用主机操作系统的网络设置,因此当您在 (macOS) 系统偏好设置或 Charles Proxy 应用程序中更改任何内容时,您必须重新启动模拟器。
您应该完成以下设置:
在 Charles 应用程序中启用此选项:代理 > macOS 代理(它会将您的本地主机设置为 (macOS) 系统偏好设置 > 网络 > 高级 > 代理选项卡上的代理)
在 iOS 10.3 或更高版本上,导航到手机/模拟器上的设置 > 常规 > 关于 > 证书信任设置,并为 Charles Proxy 证书启用完全信任。
重启 Xcode 模拟器
【讨论】:
选项2:你指的是哪里?通用菜单,系统偏好设置中的通用设置...在哪里? 在您的手机上导航到设置 > 常规 > 关于 > 证书信任设置【参考方案2】:New16 可能正在做点什么 -
不确定您使用的是哪个模拟器,但我假设它使用您 Mac 的互联网连接,这与通过您指定的 http 端口(默认为 8888)连接到 Charlesproxy 的真实设备不同。
虽然通过该端口代理的 http 流量将始终由 Charles 记录,但记录模拟器等桌面应用程序的流量是可选的。因此,只有在“代理”菜单中选中相应选项时,才会记录模拟器的流量。 (在 Windows 上的 Charles 中,可用的选项是“Windows Proxy”和“Firefox Proxy”,不确定 Mac 上的选项是什么。)
【讨论】:
以上是关于无法使用 charles 代理查看 iOS 模拟器流量的主要内容,如果未能解决你的问题,请参考以下文章
即使在安装证书之后,也无法在 Android 模拟器上使用 Charles 代理运行 HTTPS 内容
iOS13 public beta7 有 Charles 证书问题,无法 SSL 代理
如果启用SSL代理,为什么https请求在Charles Proxy上失败