iOS开发人员的Charles技巧和窍门:简介

注意:本文的几乎所有内容都适用于iOS,Android,Web或您使用的任何技术平台。

几年前,作为iOS Developer,如果遇到与某些奇怪的网络请求/响应有关的错误,我会陷入困境。 说实话。 Xcode中没有合适的工具来可视化或调试网络调用,因此我过去常常通过在各处添加断点,在各处进行硬编码和打印响应来对其进行调试,并最终找到错误后,我开始回滚我在我所做的所有这些讨厌的更改网络层。 我曾经认为,如果像我以前使用Chrome Dev Tools时(我以前是一名Web开发人员)那样,已经有了一种可视化网络请求的简单方法,就可以避免所有这些麻烦。

多亏了飞扬的意大利面条怪物,一些同事向我介绍了Charles Proxy,它是一款超赞的工具,可让我的应用程序中的所有网络活动都成为“黑魔法”,因此我将其纳入了我的日常堆叠工具。

这篇文章是我日常使用的最有用的Charles功能的简单汇编。 我希望这可以帮助某人摆脱网络调试的麻烦。

查尔斯是什么,为什么如此神奇? ✨

Charles Proxy是一个Java程序,它充当您的应用程序与Internet之间的中间人,侦听所有网络请求和响应,使您可以可视化和操纵响应/请求数据,从而使用某些特定响应mock模拟您的应用程序。

作为世界上所有美好的事物,Charles Proxy并非免费free。 但是您可以获得30天的试用期。 试用结束后,Charles在关机前只会运行30分钟,因此您可以重新启动它,然后再等待30分钟或付款。 我真的建议您说服您的团队购买或自己获得许可证。

安装

查尔斯准备好了,这只是个小孩子,只需下载最新版本即可 。 Charles支持macOS,Windows和Linux。 在本文中,我仅介绍了macOS的安装,但对于Windows或Linux,应该类似。

下载完成后,双击.dmg文件并将Charles图标拖到Applications文件夹中,然后启动它。 第一次,Charles会请求权限来配置网络设置并检查与您的计算机之间的所有网络事件。 只需Grant Privileges和Charles,它就快准备好了。

此时,Charles可以记录您的计算机发出的任何请求,但无权查看HTTPS下安全通信的内容。 请记住,HTTPS加密并保护我们的敏感数据不受代理服务器和其他中间件的侵害。 但是在这种情况下,我们希望Charles监听我们的消息,因此我们需要配置一些SSL证书。

设置模拟器的SSL证书

首先,退出您的iOS模拟器。 启动Charles并转到帮助>选择SSL代理>在iOS Simulators中安装Charles Root证书 。 当您再次启动时,iOS Simulator将安装在所有模拟器中。

在设备中设置SSL证书并连接到Charles

这有点棘手:

  1. 转到“ 代理”>“代理设置” ,选择一个端口,启用“ 透明HTTP代理” ,然后按“ 确定”
  2. 转到“ 帮助”>“ SSL代理”>“在移动设备或远程浏览器上安装Charles Root证书” ,选择此选项,将显示如下所示的弹出窗口,并带有您在上一步中选择的本地IP和端口。

3.连接设备非常简单,只需将其选中,然后在当前连接的网络中转到设置> Wi-Fi 点击以打开配置屏幕,向下滚动到“ 配置代理”并点击。 选择“ 手动配置”并添加Charles在步骤2中建议您的IP和端口,然后保存更改。

4.连接设备后,Charles会询问您的授权以允许或拒绝尝试连接的新设备。

5.在Safari中,打开https://chls.pro/ssl,然后按照说明安装证书。

6.转到设置>常规>关于>证书信任设置,然后手动信任Charles证书

完成这些步骤后,您的设备应信任Charles证书,并且来自设备的所有网络流量都将通过Charles Proxy。

下次您想在设备中监听时,只需在步骤3和4中配置代理设置。如果IP更改或不记得,请使用“ 帮助”>“本地IP地址”查看当前IP。

注意:完成操作后,请记住要恢复我们所做的所有设备网络代理设置,方法是再次打开Wi-Fi设置,将“将配置代理设置为关闭”还原。 否则,每次使用此Wi-Fi时,您的设备都会连接到Charles。

窥探around

如果您是“工作原理”的人,那么Charles将会是您的理想工具。 例如,让我们弄清楚Meetup的应用如何与他们的API交互。

将手机连接到Charles后,按顶部菜单中的灰色圆圈按钮,这是“ 记录”按钮,可帮助我们开始可视化所有请求。
在右侧的列表中,您将看到设备调用的所有URL。 当您选择Charles时,它将在右侧显示请求的每个细节。

有时,您需要做很多事情,以使Charles变得一团糟,因此,通过右键单击端点并按focus ,让我们只关注我们关注的URL Charles会在“ 其他主机”点击下折叠所有我们不在乎的请求。 而且随着时间的流逝,通话清单可能会越来越大,因此也许是时候使用扫帚图标来清理所有电话了。

您会注意到我们仍然受到限制,HTTPS仍然阻止我们查看所有内容,只是打开代理> SSL代理设置并添加主机。 因此,使用自己的证书执行此查尔斯标志的此端点。

现在,我们可以在Meetup的应用程序中看到所有内容并四处窥探,以了解该应用程序如何与API交互。

让我说…

下一步是什么?

这只是冰山的一角,Charles为可视化简单请求到即时模拟数据或伪造不存在的端点打开了另一个世界的大门。 希望您能以Charles的眼光调试您的Apps,并摆脱费时的调试工作。

在下一篇文章中,我们将探索有关Charles功能的更多信息,所以请继续关注并订阅在下一部分可用时收到通知。

继续使用以下更多Charles技巧:

  • 与查尔斯模拟数据:https://medium.com/@migueloruiz/charles-tips-and-tricks-mocking-dfddf0ffaadd