非越狱iOS设备的远程控制实现原理

WebDriverAgent是Facebook基于XCUITest推出的iOS的移动测试框架,支持目前市面上所有iOS9以上的设备。

该框架通过在设备端启动一个HTTP Server提供一系列API接受操作指令来代替固定的操作代码,除了启动应用、点击和滑动页面元素,WebDriverAgent还提供截图、页面元素查询等功能,iOS的appium测试框架就是基WebDriverAgent实现的。

WebDriverAgent 作为新的基于 XCUITest 的测试工具,有其固有优点:

  • 支持USB通信,连接mac的设备都可以测试(走xcodebuild,不走instruments)

  • 任意应用的UI测试

  • 最大的优点跨应用,号称任意界面都可以控制,还在尝试

具体使用

请查看官网 要注意的

  • 1 taget 证书要设置成开发者的证书

  • 2 在UITestingUITests.m中右键 RUN

  • 3 在控制台中出现如下内容表示运行成功

    2017-06-13 15:39:55.847 XCTRunner[2161:1804726] Built at Jun 13 2017 15:11:20
    2017-06-13 15:39:55.932 XCTRunner[2161:1804726] ServerURLHere->http://192.168.16.132:8100<-ServerURLHere

demo 启动safari,并打开百度

NSString *appBundleID = @"com.apple.mobilesafari";
XCUIApplication* app = [[XCUIApplication alloc] initPrivateWithPath:nil bundleID:appBundleID];
[app launch];
[app.otherElements[@"URL"] tap];
[app typeText:@"www.baidu.com\n"];

资料

官方资料