iOS 真機訪問 sandbox 目錄的各種姿勢

我一直知道,要做成同一件事,程序員們的方式往往五花八門。所以這次就一個問題在微博上征集答案,果然得到了許多不同方案,和大家分享下。

平常調(diào)試一直有看日志的需要,我們一般將日志文件存放在 sandbox 的 Document 目錄下,之前我如果要查看某臺設(shè)備上的日志,一般是按如下兩種方式:

方式一:使用 iTools,Mac 端的 iTools 可以訪問真機 App 的完整目錄,雖然 iOS 8.3 之后無法查看其他 App 的目錄了,但自家公司開發(fā)的 App 還是有權(quán)限的。不過由于 iTools 集成的其他東西太多,工具體驗也不好,后來就沒怎么用了。

方式二:使用 Xcode 自帶的工具,通過菜單 Windows -> Devices 進入設(shè)備管理界面,選中 iPhone 之后可以查看 Installed Apps,再通過 Download Container 的方式可以將整個 App 下載到 Mac 上。

直覺告訴我,肯定還有其它不少便捷的方式,心血來潮在微博上征集答案,收獲如下:

@Nemocdz: 模擬器用tysimulator 真機用iMazing

這也是借助第三方 App 的方式,iMazing 我試用了確實可行,瀏覽目錄功能免費,還有不少其他諸如資料備份的強大功能,收費。

@Elliot-yanghao: 我寫了個通過瀏覽器打開app的沙箱文件的demo,相當(dāng)于內(nèi)置一個http服務(wù)器一樣,很好用

Github 上見過不少這類實現(xiàn),在 iOS 端起一個 HTTP 服務(wù)器,瀏覽器直接訪問 sandbox 目錄。同樣的做法還有不少網(wǎng)友提供了。

@馮鞏是誰SimPholders?

SimPholders 是款收費的 Mac 端 App,有不少針對開發(fā)者的高級功能,不過只支持模擬器。

@沒味道的葵花籽plist里設(shè)置成iTunes共享,連接同步推之類的軟件可查看documents目錄

這種做法之前也想到過,不過發(fā)布前要記得改 plist 文件,稍嫌麻煩。

@艾力亞爾iOS 開發(fā)技巧 - 實時訪問真機沙盒文件

這種做法也是在 iOS 端起 HTTP 服務(wù)器,不過 @艾力亞爾 給出的方案更具體,可以用開源第三方庫 GCDWebServer 在 iOS 端做服務(wù)器用,之后用瀏覽器訪問具體網(wǎng)址就可以了,支持 WebDAV。

實際上,之所以想到這個問題,是想做個小工具改善下體驗,最初我的思路有兩個:

思路一:做一個簡單的 Mac 端 App,可以直接讀取設(shè)備的 App 列表,選中后可以瀏覽 Sandbox 目錄。這種方案相當(dāng)于 iTools 的精簡版。

思路二:在 iOS 端集成一段代碼,可以通過搖一搖呼出一個文件瀏覽器界面,瀏覽 Sandbox 目錄,再通過選中日志文件,以 airdrop 的方式分享到 Mac 端。

方案一需要連 USB,而且要裝一個 Mac 端 App,比較之下第二種方案實現(xiàn)簡單,體驗更一氣呵成,最后就花時間把思路二實現(xiàn)了,名為 AirSandbox,和大家分享。

AirSandbox

點擊閱讀原文可以跳轉(zhuǎn)到 Github 頁面。

只需要添加如下代碼,即可通過從屏幕右側(cè)左滑,呼出 sandbox 目錄的文件瀏覽器。

#ifdef DEBUG
    [[PAirSandbox sharedInstance] enableSwipe];
#endif

界面如下:

有需要的同學(xué)可以去 Github 下載代碼 :)

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

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

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