charles代理手机调试_Mac 上使用 Charles 进行手机抓包调试
RN 開發(fā)時(shí)雖然可以借助 remote-devtools 等工具在 chrome 中調(diào)試,但是在有些場(chǎng)景下,比如微信登錄,不能用 chrome 調(diào)試,這個(gè)時(shí)候就需要抓包工具的幫助了,在 Mac 上首選 Charles。
安裝
配置配置代理端口號(hào),我用的是 8888
配置手機(jī)代理,主機(jī)名是 mac 的 IP 地址,可以使用 ifconfig 指令查看
這樣就可以正常抓包 http 請(qǐng)求了
https配置 ssl proxy,我直接使用的是 :,也可以有針對(duì)的配置
Mac 上安裝證書
點(diǎn)擊后會(huì)自動(dòng)打開 Mac 的鑰匙串管理,找到剛剛添加的 Charles 的證書
設(shè)置為”始終信任“
手機(jī)上添加證書
使用手機(jī)瀏覽器打開上面的鏈接,會(huì)下載證書文件,可能是 .pem 文件,也可能是 .crt 文件,直接打開,如果不能直接打開,可以通過(guò)從設(shè)備中找到證書文件安裝,效果如下
安裝時(shí)需要手機(jī)密碼,安裝后可以在信任列表中找到剛剛安裝的證書
問(wèn)題小米瀏覽器下載顯示無(wú)法打開文件
在 設(shè)置 -> 更多設(shè)置 -> 系統(tǒng)安全 -> 加密與憑據(jù) 中,選擇 “從存儲(chǔ)設(shè)備安裝”,然后找到下載的證書文件安裝
可能因?yàn)橄到y(tǒng)版本不同略有差異,但大抵相同遵照配置安裝證書之后 https 請(qǐng)求顯示的還是 unknown
原因:這是 Android 7.0 及之后的系統(tǒng)版本的安全策略,APP 需要添加網(wǎng)絡(luò)安全性配置才能進(jìn)行調(diào)試
解決方法:在 APP 內(nèi)添加安全配置文件修改 AndroidManifest.xml 文件1
2
3
4
5
6
7<?xml version="1.0" encoding="utf-8"?>
... >
...
在 res 目錄下創(chuàng)建 xml 目錄,在目錄下創(chuàng)建 network_security_config.xml 文件(文件名一致即可)
network_security_config.xml 文件內(nèi)容如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22<?xml version="1.0" encoding="utf-8"?>
secure.example.com
cdn.example.com
Android Studio 同步時(shí)報(bào)錯(cuò):Gradle ‘a(chǎn)pp’ project refresh failed: Unable to find valid certification path to requested target
原因:Charles 會(huì)默認(rèn)打開系統(tǒng)代理,所以 Android Studio 在 sync project 的時(shí)候,會(huì)經(jīng)過(guò) Charles 的代理,又因?yàn)?Charles 設(shè)置了根證書,所以 AS 在 sync project 的時(shí)候就報(bào)了‘找不到證書’的錯(cuò)誤
解決方法:Charles -> Proxy -> Proxy Settings -> macOS
在 macOS 里把 Enable macOS proxy 和 Enable macOS proxy on launch 的勾去掉,然后重新啟動(dòng)一下 Charles ,重啟 AS 就可以正常編譯了
參考文章
總結(jié)
以上是生活随笔為你收集整理的charles代理手机调试_Mac 上使用 Charles 进行手机抓包调试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 吞食天地2星域神启s吕布传攻略
- 下一篇: 推荐优秀的SQL脚本调试工具Embarc