WebDriverAgent 安装

做个记录,因为我又忘记了。。。

下载项目

这里选择的是 appium/WebDriverAgent

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

进入项目文件夹,通过 bootstrap.sh 脚本安装必要的依赖

cd WebDriverAgent
./Scripts/bootstrap.sh

在安装完成后,就可以用 Xcode 打开项目了


设置签名和证书

按照下图步骤操作

再确认下图选项

再修改一个专属的 Product Bundle Identifier

直接双击 value 部分可直接修改


Build & Test

接下来,在左上角红框区域选择 WebDriverAgentRunner 以及指定的 iOS设备

进行构建

然后开始执行 Test

手机需要处于解锁状态

这时候看到一个错误提示

这是因为企图打开刚刚安装在目标设备上的名为 WebDriverAgentRunner-RunnerApp

而这个 App 暂时还不受信任

通过 设置 ➡️ 通用 ➡️ 设备管理 ➡️ 开发者APP ➡️ 信任证书

这时候,再执行 Test ⌘U

可以看到顶部的状态变更为了 Testing WebDriverAgentRunner

从右上角的快捷按钮打开输出窗口,

可以看到 目标设备IP 已经开启了一个服务


iproxy

理论上,是可以直接访问 http://192.168.2.36:8100/status

但实际上,并不行。。

这时候需要用到一个神器库 libimobiledevice

一个光看都觉得🐂的不行的第三方库

但是自己编译打包肯定是没必要的。。

所以搜了下,大部分都是用的 brew 安装,但我不是很想用。。

就找到了这个 benvium/libimobiledevice-macosx 安装很简单

但是首次执行这些可执行文件的时候,需要去 系统便好设置 ➡️ 安全性与隐私 允许执行。。会比较麻烦。。

有很多非常实用的程序,比如 idevicescreenshot

这里重点使用的是 iproxy

iproxy 8100 8100

如果同时接入了多个 iOS设备

需要使用 idevice_id -l 获取指定的 UDID

iproxy LOCAL_TCP_PORT DEVICE_TCP_PORT UDID

当启动了 端口转发 后会提示如下内容

就表示转发功能开启成功了

waiting for connection

这时候就可以通过访问 http://localhost:8100/status 得到如下内容

$ curl http://localhost:8100/status
{
  "value" : {
    "message" : "WebDriverAgent is ready to accept commands",
    "state" : "success",
    "os" : {
      "name" : "iOS",
      "version" : "13.4.1",
      "sdkVersion" : "13.4"
    },
    "ios" : {
      "simulatorVersion" : "13.4.1",
      "ip" : "192.168.2.36"
    },
    "ready" : true,
    "build" : {
      "time" : "Apr 14 2020 13:53:07",
      "productBundleIdentifier" : "com.facebook.WebDriverAgentRunner"
    }
  },
  "sessionId" : "9D808D1D-4B00-4373-9589-BF142948F400"
}%

到这里就正式结束了


可能设备需要先进行下图的添加

但是我很久之前就加过了,也有点忘记当时因为啥要先添加了。。

想起来再记录下。。。