无法使用 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 内容

Charles代理SSL连接不会显示主机名,只显示ips

iOS13 public beta7 有 Charles 证书问题,无法 SSL 代理

如果启用SSL代理,为什么https请求在Charles Proxy上失败

Charles笔记-配置Charles代理抓取HTTP和HTTPS数据包,安卓模拟器连接Charles

Charles学习之使用Map local代理本地静态资源以及配置移动端代理在真机上调试iOS和Android客户端