OpenSimulator
實(shí)現(xiàn)原理比較簡(jiǎn)單,模擬器列表只顯示當(dāng)前啟動(dòng)的模擬器
//獲取當(dāng)前活動(dòng)的window集合
CG_EXTERN CFArrayRef __nullable CGWindowListCopyWindowInfo(CGWindowListOption option,CGWindowID relativeToWindow)
//這個(gè)就是模擬器對(duì)應(yīng)的window信息
{
kCGWindowAlpha = 1;
kCGWindowBounds = {
Height = 818;
Width = 421;
X = 299;
Y = 22;
};
kCGWindowLayer = 0;
kCGWindowMemoryUsage = 1128;
kCGWindowName = "iPhone 7 - iOS 11.1";
kCGWindowNumber = 13808;
kCGWindowOwnerName = Simulator;
kCGWindowOwnerPID = 44458;
kCGWindowSharingState = 1;
kCGWindowStoreType = 1;
}
根據(jù)window信息前往/Library/Developer/CoreSimulator/Devices/device_set.plist查找對(duì)應(yīng)的UDID,然后找到所安裝的所有應(yīng)用.

Simulator
關(guān)于真機(jī)的沙盒路徑,使用了webServer
當(dāng)連接了設(shè)備,則會(huì)顯示設(shè)備的用戶(hù)名稱(chēng)

Device
選擇Usage則會(huì)打開(kāi)一個(gè)文件夾,查看README.md使用說(shuō)明
GCDWebUploader.bundle、WebServer.framework添加到工程項(xiàng)目
調(diào)用[WebServer connect];就可以開(kāi)啟webServer服務(wù).

Usage
Open Web Server則打開(kāi)設(shè)備的沙盒服務(wù)器

webServer