iOS

iOS 真机安装 WebDriverAgent

简介:iOS 真机安装 WebDriverAgent

在iOS真机上安装WebDriverAgent

初始化WebDriverAgent项目

首先clone代码到本地:

git clone https://github.com/facebook/WebDriverAgent.git

clone完成后,进入文件夹,并运行引导脚本:

./Scripts/bootstrap.sh

该脚本会使用Carthage下载所有的依赖,Carthage是一个第三方包管理工具,使用npm打包响应的js文件

如果你的Mac没有安装Carthage,请先安装,不然引导脚本将无法执行完成:

brew install carthage

至此项目初始化完成

配置证书

  • 使用Xcode打开WebDriverAgent.xcodeproj
  • 配置WebDriverAgentLib这个target的证书,依次按下图执行,如果你用的是免费的开发者账号,请先修改Bundle Identifier

Snip20180101_1.png
- 配置WebDriverAgentRunner这个target的证书,依次按下图执行
Snip20180101_2.png

运行并测试

  • Scheme选择WebDriverAgentRunner , 并选择你的真机设备
    Snip20180101_5.png

  • 按Command+U执行或点击Xocde菜单栏Product-Test进行测试
    Snip20180101_6.png

此处我遇到的问题:
1.报错找不到WebDriverAgent.bundle,解决方法:根据其所在的目录结构,创建WebDriverAgent.bundle,然后再运行项目即可;
2.提示test failure 测试失败,原因是我的iOS设备使用了无线调试,后来我使用数据线连接mac调试解决;

  • 运行成功后,在你的iOS设备上有一个WebDriverAgent,并且在Xcode控制台会打印一个ip地址,此时在你的iOS的浏览器输入这个ip,比如我的是http://192.168.199.123:8100/status,会显示一些json信息,说明此时已经安装并运行成功;
    Snip20180101_10.png

注意:如果是模拟器上运行,地址肯定可以打开,如果是真机上运行,则有可能会打不开。我们需要做一下端口转发。
首先安装imobiledevice

brew install imobiledevice

端口转发
iproxy 8100 8100

此时在浏览器中打开链接http://localhost:8100/status查看

{
  "value" : {
    "state" : "success",
    "os" : {
      "name" : "iOS",
      "version" : "13.2.2"
    },
    "ios" : {
      "simulatorVersion" : "13.2.2",
      "ip" : "192.168.1.110"
    },
    "build" : {
      "time" : "Nov 11 2019 19:03:26"
    }
  },
  "sessionId" : "0C2639A2-ED69-45F4-B916-3FE9F9DD9908",
  "status" : 0
}

问题

  • 1.Xcode 10.2后XCAXClient_iOS没有+sharedClient这个方法,在运行时会导致crash
     [WD Proxy] Got an unexpected response: {"value":"+[XCAXClient_iOS sharedClient]: unrecognized selector sent to class 0x100f58130\n\n(\n\t0 CoreFoundation 0x0000000212788edc + 252\n\t1 libobjc.A.dylib 0x0000000211959a40 objc_exception_throw + 56\n\t2 CoreFoundation ...
    

    解决方案:
    一开始搭建环境时使用的xcode版本为10.2。但10.2中XCAXClient_iOS没有sharedClient这个方法。最终降级为10.1来自

或者使用https://github.com/appium/WebDriverAgent 分支

  • 2.

推荐阅读

目录