簡介說明:
PC端可以用F12進行console等進行調試,但移動端App中使用webview就無法進行實時調試,針對這種情況
1. 安裝
全局安裝 spy-debugger
sudo npm install spy-debugger -g
// window不用加sudo
2. spy-debugger 證書
其實spy-debugger的代理是基于node-mitmproxy模塊實現的,這里安裝的證書其實是node-mitmproxy的證書,標題寫spy-debugger證書是為了和Charels證書區分開來避免混淆。
電腦安裝證書
在命令行中執行spy-debugger啟動spy-debugger服務,啟動成功后,檢查你的用戶目錄目錄~,會發現多了一個node-mitmproxy文件夾,這個文件夾內放的就是代理需要的證書。
我Mac電腦完整的路徑是:
接下來需要在手機安裝此證書(安卓為例)
首先需要將node-mitmproxy.ca.crt上傳到手機上,可以通過live-server 在node-mitmproxy.ca.crt文件所在的目錄下啟動這個服務。如果你還沒有live-server命令,可以通過以下命令進行安裝:
sudo npm i -g live-server
在/xxxx/xxx/node-mitmproxy目錄下執行live-server命令
在手機瀏覽器上訪問這個服務,輸入我電腦的IP地址和端口進行訪問,??手機和電腦必須是連接同一個WiFi網絡才可以訪問。
點擊node-mitmproxy.ca.crt文件進行下載安裝
下載下來,在瀏覽器下載中心中長按查看下載的目錄
找到手機設置-》搜索受信任的憑據(每個手機叫法不一樣,最終就是安裝ca證書)
從手機存儲安裝
選擇CA證書
按照剛剛找到的路徑找,點擊信任安裝
此時,spy-debugger的前期準備工作就已經全部完成了
3. Charles 證書
這里簡單介紹一下Charles的證書安裝,如果你已經是Charles的老手了,可以直接跳過。Charles如果不安裝證書的話是無法抓https的請求的。
電腦安裝證書
第1步:
點擊Charles的Help> SSL Proxying> Install Charles Root Cetificate 然后就會彈出證書安裝頁面,將Charles的證書設置為始終信任即可:
第2步:
點擊Charles的Proxy > Access Control Settings
進行配置讓手機連接代理時,不需要點允許連接確認操作。
手機安裝charles證書
第1步:
點擊Charles的Help> SSL Proxying> Install Charles Root Cetificate on a Mobile Device or Remote Browser
然后會彈出一個對話框,告訴你手機要設置的代理IP地址和端口,
??注意:手機和電腦必須連接同一個WiFi才可以。
第2步:
根據提示在手機上配置Wi-Fi網絡代理,在手機上點擊設置> wifi->手動代理,進行輸入IP和端口號
第3步:
在瀏覽器輸入chls.pro/ssl,下載并安裝證書
下載證書的步驟就和上面spy-debugger下載證書的方式一樣
此時,Charles所有的準備工作都完成了,接下來我們就可以啟動spy-debugger進行移動端H5調試了。
4. 測試使用,啟動spy-debugger
第1步:
啟動命令
# 啟動spy-debugger服務
spy-debugger
也可以使用-e參數設置Charles作為外部代理服務
# 啟動spy-debugger服務,并設置外部代理為Charles的服務,8888是charles的端口
spy-debugger -e http://127.0.0.1:8888
上述命令表示啟動spy-debugger調試服務,并將所有的資源請求都轉發到Charles的代理服務上。其實我們打開Charles程序的時候,它實際上是在本地啟動了一個http的服務,監聽在8888端口上。
第3步:
在瀏覽器打開http://127.0.0.1:59224/client/
第4步:
在京東App里隨便找一個H5頁面打開,或者在手機瀏覽器上打開 https://m.jd.com/
第5步:
此時在瀏覽器上的Remote選項卡上就可以看到,連接的終端了
第6步:
我們可以在Elements選項上進行頁面元素的選擇和調試,可以發現我們鼠標放到元素上,手機端上會實時看到選中效果
第7步:
我們還可以在Console選項卡下查看代碼輸出的console信息,我們也可以這里輸入頁面要執行的代碼
第8步:
此時我們發現所有的請求都被轉發到了Charles上