重磅!全新 sib remote 功能上線,iOS 遠端除錯的福音!
官網連結
https://sonic-cloud.gitee.io/#/SIB
背景
有時在團隊裡,想遠端觸發裝置的 wda 或者 fastbot 一類 xctest 的時候,有非常多的限制,因為裝置只能在本地。而在 sonic 團隊開發時,我們裝置比較缺少,每次開發 sib 的新功能時,經常出現團隊內有人有對應裝置了,但是主程沒有對應裝置,只能盲打然後再讓有裝置的成員幫忙驗證,非常耗費時間。做移動端的人多多少少都用過,stf 的 adbkit 裡面的 usb-device-to-tcp 功能,它可以將連線的裝置在區域網中分享出來,提供給其他的 adb client 連線,這個功能可以很方便的給 adb cli 開發人員除錯。研究過原始碼的話,其實可以發現當前市面上的 iOS DTX 工具和 adb 的架構是很類似的,那為什麼 sonic 不能做出類似 adbkit usb-device-to-tcp 效果的功能呢?
現狀
目前主流的平臺大多數暴露的 iOS 遠端連線除錯,都是暴露 wda 的遠端 url,可以讓 client 端利用 Appium 一類的工具連線這個 url 進行自動化操作。雖說這樣能滿足大部分需求,但是對於走協議層進行更多操作的使用者來說,wda 提供的功能很少,而且前提要遠端裝置先開啟 wda 服務。於是我們計劃是往下走一層,從協議層提供遠端連線。
大體思路
sib 依賴於 gidevice,而 gidevice 依賴於 usbmux,而每次進行裝置連線時,都會進行一次 usbmux 的連線,然後往裡面傳送相關的 DTX 資料,如果研究過相關文章,就會知道 usbmux 本質上是一個本地的 tcp 服務。基於這些特性,於是我們在 sonic-gidevice 中對 gidevice 進行二次開發,設計思路:對外暴露一個 remote tcp server,可以讓其他客戶端往這個 remote tcp server 裡傳送 DTX,然後 server 端將這些 DTX 資料轉發到本地的 usbmux tcp server,當 usbmux tcp server 產生回報資訊後,remote tcp server 轉發這些資訊給對應的客戶端。
在這裡非常感謝組織成員 aoliaoaoaojiao 的辛勤付出
使用
在電腦 A 分享裝置:
sib remote share -u <you device udid> -p <share port>
在電腦 B 連線:
執行
sib remote connect --host <you share device pc ip> -p <share port>
之後就可以透過透過 devices 獲取到這個遠端裝置的資訊
sib devices
類似如下
之後使用 sib 時的其他功能時,指定遠端裝置的 uuid,即可正常使用這些功能,就像手機連線在本地一樣使用。
觸發遠端裝置啟動 wda:
sib run wda -b xxxxx
監控遠端裝置效能資訊:
sib perfmon
或者其他所有 sib 的功能都可以直接使用了!
電腦 B 斷開連線:
sib remote disconnect --host <you share device pc ip> -p <share port>
或者電腦 A 直接停止 share 程序
結語
目前 sib 已經更新了,sonic 平臺的話也將在 12 月的 2.1.0 版本正式引入這個功能,屆時可以直接在前端頁面獲取裝置遠端除錯的連結,然後使用者可以自己本地 sib remote connect 就可以像本地連結一樣使用啦!
相關文章
- Idea進行java應用的遠端除錯Remote debuggingIdeaJava除錯REM
- PHPSTROM遠端除錯PHP除錯
- Pycharm遠端除錯PyCharm除錯
- Pycharm連線遠端伺服器並實現遠端除錯PyCharm伺服器除錯
- 使用 Microsoft Remote Desktop 遠端連線 WindowsROSREMWindows
- Microsoft Remote Desktop Mac(遠端連線工具)ROSREMMac
- IDEA、ECLIPSE遠端除錯IdeaEclipse除錯
- 微軟遠端連線Microsoft Remote Desktop for Mac微軟ROSREMMac
- Microsoft Remote Desktop for Mac(遠端桌面連線工具)ROSREMMac
- 本地除錯遠端服務除錯
- 使用IDEA遠端debug除錯Idea除錯
- debug技巧之遠端除錯除錯
- vscode遠端除錯c++VSCode除錯C++
- Dapr 遠端除錯之 Nocalhost除錯
- pycharm 遠端除錯之二PyCharm除錯
- Xdebug+PhpStorm 遠端除錯PHPORM除錯
- 微軟遠端連線工具:Microsoft Remote Desktop Beta微軟ROSREM
- Microsoft Remote Desktop for Mac 微軟遠端連線工具ROSREMMac微軟
- 遠端連線Remote Desktop mac啟用安裝REMMac
- 遠端連線Remote Desktop Manager Mac版 2022最新REMMac
- Microsoft Remote Desktop for Mac微軟遠端連線工具ROSREMMac微軟
- Microsoft Remote Desktop for Mac(遠端桌面連線工具)10.7.1ROSREMMac
- 基於 Scrcpy 的遠端除錯方案除錯
- VS - 打斷點/本地除錯/遠端除錯 問題斷點除錯
- Microsoft Remote Desktop for Mac(遠端桌面連線)啟用版ROSREMMac
- Microsoft Remote Desktop for Mac(微軟遠端連線軟體)ROSREMMac微軟
- 使用IDEA進行遠端除錯Idea除錯
- 使用Xdebug進行遠端除錯除錯
- WebStorm遠端除錯Node.jsWebORM除錯Node.js
- Homestead+PhpStorm+Xdebug 遠端除錯PHPORM除錯
- vs搭建遠端除錯環境除錯
- phpstorm 遠端除錯 homstead 程式碼PHPORM除錯
- windows 遠端連線Linux進行開發與除錯MySQLWindowsLinux除錯MySql
- Windows 使用VSCode遠端連線到Linux開發除錯MySQLWindowsVSCodeLinux除錯MySql
- Remote Desktop Manager 2022,遠端控制REM
- 遠端桌面工具哪個好?Microsoft Remote Desktop遠端桌面連線工具中文版ROSREM
- 遠端桌面連線管理工具Remote Desktop Manager中文REM
- Mac遠端訪問資料連線Microsoft Remote Desktop中文MacROSREM