skip to content
鰭狀漏斗

在 Linux 對 iPhone 上的 Safari 除錯

/ 閱讀時間 3 分鐘

目次

因為上一篇文章的問題,我在網路上搜尋如何從 Linux 對 iPhone 手機上的 Safari 瀏覽器進行除錯,找到了參考資料的這篇文章,試了有效,所以分享出來。

蘋果官方只支援用 Mac 對 iPhone 上的 Safari 除錯,如果要在其他作業系統的電腦上除錯的話,要使用 ios-safari-remote-debug-kit

在開始之前,要先確定 usbmuxdios-webkit-debug-proxy 安裝了沒有。ios-webkit-debug-proxy 在 Arch Linux 不是官方維護的套件,而是在 AUR 上。

再來確認 usbmuxd 是否正在運作,可以用 systemctl status usbmuxd 確認。確認完後,將 iPhone 接到電腦,輸入 idevice_id -l 指令有沒有什麼輸出結果,有的話就可以繼續下去。

複製 ios-safari-remote-debug-kit 的 GitHub repository 到電腦。在 src 資料夾裡有副檔名是 .ps1 的 powershell script 跟副檔名是 .sh 的 shell script,請依照電腦的作業系統選用對應的 script。

我是用 Linux,所以在 src 資料夾下執行 ./generate.sh,執行中會要求你選擇 iOS 版本:

...
Select iOS version for InspectorBackendCommands.js
Choose iOS version (possible options: 13.0, 13.4, 14.0, 14.5, 15.0, 15.4, 16.0, 16.4, 17.0, 17.2, 17.4, 18.0, 18.2, 18.4) Default: latest (18.4):

我的 iPhone 卡在 15.8.3 升不上去,就選擇最接近的 15.4 吧。

執行完成後,如果剛剛把 iPhone 的傳輸線拔掉,記得接回去。接著執行 ./start.sh,成功會看到 Connected :9222 to iPhone 7 的字樣,到 http://localhost:9222/ 會看到簡陋的網頁,顯示出你可以做檢查的網頁清單:

Inspectable pages for iPhone 7:
1. ...
2. ...
3. ...

記住你想要檢查的網頁對應的編號,在 Chromium 系的瀏覽器開啟 http://localhost:8080/Main.html?ws=localhost:9222/devtools/page/[編號],成功的話可以看到開發人員工具,這樣就可以開始對網頁除錯了。

在這篇文章,我只有依照下面參考資料的文章對其中的重點重新描述一次。如果遇到問題或是想瞭解更多資訊,請參見:

參考資料