重磅!全新sib remote功能上線,iOS遠(yuǎn)程調(diào)試的福音!

官網(wǎng)鏈接

https://sonic-cloud.gitee.io/#/SIB

背景

有時(shí)在團(tuán)隊(duì)里,想遠(yuǎn)程觸發(fā)設(shè)備的wda或者fastbot一類(lèi)xctest的時(shí)候,有非常多的限制,因?yàn)樵O(shè)備只能在本地。而在sonic團(tuán)隊(duì)開(kāi)發(fā)時(shí),我們?cè)O(shè)備比較缺少,每次開(kāi)發(fā)sib的新功能時(shí),經(jīng)常出現(xiàn)團(tuán)隊(duì)內(nèi)有人有對(duì)應(yīng)設(shè)備了,但是主程沒(méi)有對(duì)應(yīng)設(shè)備,只能盲打然后再讓有設(shè)備的成員幫忙驗(yàn)證,非常耗費(fèi)時(shí)間。做移動(dòng)端的人多多少少都用過(guò),stf的adbkit里面的usb-device-to-tcp功能,它可以將連接的設(shè)備在局域網(wǎng)中分享出來(lái),提供給其他的adb client連接,這個(gè)功能可以很方便的給adb cli開(kāi)發(fā)人員調(diào)試。研究過(guò)源碼的話,其實(shí)可以發(fā)現(xiàn)當(dāng)前市面上的iOS DTX工具和adb的架構(gòu)是很類(lèi)似的,那為什么sonic不能做出類(lèi)似adbkit usb-device-to-tcp效果的功能呢?

現(xiàn)狀

目前主流的平臺(tái)大多數(shù)暴露的iOS遠(yuǎn)程連接調(diào)試,都是暴露wda的遠(yuǎn)程url,可以讓client端利用Appium一類(lèi)的工具連接這個(gè)url進(jìn)行自動(dòng)化操作。雖說(shuō)這樣能滿足大部分需求,但是對(duì)于走協(xié)議層進(jìn)行更多操作的用戶來(lái)說(shuō),wda提供的功能很少,而且前提要遠(yuǎn)程設(shè)備先開(kāi)啟wda服務(wù)。于是我們計(jì)劃是往下走一層,從協(xié)議層提供遠(yuǎn)端連接。

大體思路

sib依賴于gidevice,而gidevice依賴于usbmux,而每次進(jìn)行設(shè)備連接時(shí),都會(huì)進(jìn)行一次usbmux的連接,然后往里面發(fā)送相關(guān)的DTX數(shù)據(jù),如果研究過(guò)相關(guān)文章,就會(huì)知道usbmux本質(zhì)上是一個(gè)本地的tcp服務(wù)。基于這些特性,于是我們?cè)?sonic-gidevice中對(duì)gidevice進(jìn)行二次開(kāi)發(fā),設(shè)計(jì)思路:對(duì)外暴露一個(gè)remote tcp server,可以讓其他客戶端往這個(gè)remote tcp server里發(fā)送DTX,然后server端將這些DTX數(shù)據(jù)轉(zhuǎn)發(fā)到本地的usbmux tcp server,當(dāng)usbmux tcp server產(chǎn)生回報(bào)信息后,remote tcp server轉(zhuǎn)發(fā)這些信息給對(duì)應(yīng)的客戶端。
在這里非常感謝組織成員 aoliaoaoaojiao 的辛勤付出

使用

在電腦A分享設(shè)備:

sib remote share -u <you device udid> -p <share port>

在電腦B連接:

執(zhí)行

sib remote connect --host <you share device pc ip> -p <share port>

之后就可以通過(guò)通過(guò)devices獲取到這個(gè)遠(yuǎn)程設(shè)備的信息

sib devices

類(lèi)似如下

image

之后使用sib時(shí)的其他功能時(shí),指定遠(yuǎn)程設(shè)備的uuid,即可正常使用這些功能,就像手機(jī)連接在本地一樣使用。

觸發(fā)遠(yuǎn)程設(shè)備啟動(dòng)wda:

sib run wda -b xxxxx

監(jiān)控遠(yuǎn)程設(shè)備性能信息:

sib perfmon

或者其他所有sib的功能都可以直接使用了!

電腦B斷開(kāi)連接:

sib remote disconnect --host <you share device pc ip> -p <share port>

或者電腦A直接停止share進(jìn)程

結(jié)語(yǔ)

目前sib已經(jīng)更新了,sonic平臺(tái)的話也將在12月的2.1.0版本正式引入這個(gè)功能,屆時(shí)可以直接在前端頁(yè)面獲取設(shè)備遠(yuǎn)程調(diào)試的鏈接,然后用戶可以自己本地sib remote connect就可以像本地鏈接一樣使用啦!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容