Mac下如何使用Charles抓包真机调试App

前言

1、工具的选择

        抓包方式有多种(Charles、Fiddler、Spy-debugger、Wireshark等),这里只说这一种Charles!

        Charles是一个在本地运行的Web代理(HTTP代理/ HTTP监视器)软件。开启Charles后,Web浏览器(或任何其他的互联网应用程序)将配置为通过Charles来访问互联网,而Charles则能够记录并显示你所有的发送和接收的数据。

        在Web和互联网的开发项目中,如果你不能看到客户端(比如浏览器)和服务器之间到底有什么数据正在发送和接收,如果没可视化监控手段,那么确定故障原因将是困难和费时的。Charles可以很容易地看到发生了什么,这样你就可以快速诊断并解决问题。

2、抓包测试原理

        抓包工具的主要原理就是网络代理,所有的请求和响应都用工具来隔离。工具内部就能模拟限速以及丢包的效果。

原理

相同的网络,Mac的IP=a,手机用a作为代理,端口则是Charles默认的8888。关键环节,Mac使用正常端口访问网络。

3、工具的安装

        官网下载地址(我官网下载没经过破解就可用),或者直接下载破解版。下载了DMG文件后即可开始安装,安装时可能会提示需要java支持,如果机器上java版本不合适,请根据提示到苹果网站找到合适的java安装。其实用正版也可以,只不过每次使用时长是30分钟,30分钟抓个包的时间也够用了。这部分都是前辈们总结的以下是我自己总结的。

4. 准备工作

        Charles是macOS上的最常用的抓包工具,目前我使用最新版本为4.6.1,今天来总结一下Charles的最新使用方法,支持Http/Https,主要是抓Https包的使用方法。

MAC与iPhone连接操作步骤

1)、 Mac上Charles客户端配置:打开Charles工具,先从菜单入手

        安装好Charles后,在菜单栏勾选『Proxy -> macOS Proxy』,macOS系统HTTP/HTTPS代理将会被自动设置为本地代理,默认端口8888。

http: proxy>proxy settings设置代理端口
macOS系统HTTP/HTTPS代理将会被自动设置为本地代理,默认端口8888


设置要抓包的域名+端口号(端口号可不指定)
SSL Proxying Setting (添加需要抓包的域名端口)

2)、 抓macOS应用程序包(HTTPS)

在菜单栏选择 『Help -> SSL Proxying -> Install Charles Root Certificate』,会自动导入 Charles Proxy CA 证书并打开 Keychain Access(钥匙串访问),双击新导入的证书弹出证书信息页面,将 Secure Sockets Layer(SSL安全套接字层) 设置为Always Trust(始终信任),关闭页面后弹出密码提示,输入Mac密码更新系统信任设置。


导入证书 Charles Proxy CA证书
信任证书

3)、手机端:手机设置代理连到端口上,前提是手机和pc在同一局域网

      》  在Mac上先打开Charles,确保iOS设备和Mac处于同一局域网内(可使用Mac创建热点分享给iOS设备或者连接wifi)。

      》  设置iOS HTTP代理,打开iOS设备对应WIFI设置,添加代理IP地址(Mac的局域网地址)和端口号(8888)。

手机Wifi前往代理配置


配置代理1
配置代理2(服务器+端口号配置完成存储)

3)、Mac局域网地址可以在Charles中从菜单栏『Help -> Local IP Address』获取。

Mac局域网iP地址

在iOS设备上访问数据链接,Charles 弹出 Access Control 确认对话框,选择Allow,可以开始抓取HTTP包。

下载证书地址1

4)、下面设置抓取HTTPS包

在菜单栏选择 『Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or a Remote Browser』,弹出提示框。


下载证书地址2

根据上述提示,在iOS设备上使用Safari浏览器访问 http://chls.pro/ssl,Safari浏览器会自动下载证书并提示安装,根据提示一步一步安装好,证书会被添加到『设置 -> 通用 -> 描述文件』中。

安装及验证描述文件

进入『设置 -> 通用 -> 关于本机 -> 证书信任设置』,对上一步安装的Charles证书启用完全信任。

证书信任设置

在iOS设备上访问HTTPS数据链接,可以开始抓取HTTPS包。抓包域名端口设置和macOS应用程序相同。

到此为止是数据请求的抓包过程........

5、MAC上使用Safari浏览器调试WebView

在macOS上打开Safari设置

Safari – 偏好设置 – 高级 – 勾选“在菜单栏中显示开发”

在iOS设置

设置 – Safari – 高级 – 打开Web检查器

将网页的地址输入到手机Safari上打开,注意:电脑和手机要用数据线连接!!!

设置

下图就是调试界面

调试界面

6、Proxy简要描述

简要描述

charles有强大的代理功能,总的来看大概可以分为5大块:

一、常用功能开关区

开关区

二、常用功能设置区

设置区

三、反向代理和端口转发区域

转发区

四、charles的代理身份配置区域

配置区域

五、常用的高级设置区

高级设置区

【stop/start recording和recording settings】

是常用的功能,这里需要注意后面的session1代表当前你将要操作的会话窗口,就是切换是否进行捕获记录。

你可能感兴趣的:(Mac下如何使用Charles抓包真机调试App)