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