iOS真机安装WebDriverAgent

iOS 真机安装 WebDriverAgent

本文根据 ATX 文档 - iOS 真机如何安装 WebDriverAgent 进行实践
参考资料
https://github.com/openatx/facebook-wda
https://github.com/NetEaseGame/ATX
https://github.com/facebook/WebDriverAgent
https://github.com/appium/WebDriverAgent

准备工作

注意:尽量升级Xcode到最新版本,iphone版本大于9.3

  • Xcode版本:10.2.1
  • iPhone版本:12.2
  • OS版本:10.14.4

实践开始

  • 新建一个目录,从 git 下载 WDA 项目代码到本地
    git clone https://github.com/facebook/WebDriverAgent

  • 运行初始化脚本

    1
    2
    3
    4
    #进入代码目录
    cd xx/xx/WebDriverAgent-master
    #执行初始化脚本
    ./Scripts/bootstrap.sh

  • 根据报错通过 brew 安装以下依赖

    1. carthage依赖:brew install carthage
    2. npm:brew install npm

证书设置

  1. 进入项目路径,双击打开WebDriverAgent.xcodeproj,打开xcode后按照下方数字序号依次点击,勾选第5项目,弹框内点击Enable Automatic。

  2. Team 栏添加帐户(个人账号和开发者账号兼可)选中
    -w1059

  1. 接着在TARGETS里面选中WebDriverAgentRunner,用同样的方法设置好证书
    -w1139

  2. 个人免费版的证书,还需要修改下WebDriverAgent的BundleID,随便加后缀,不要跟别人重复就好

运行和测试

-w784

  • 点击方框选项,分别选择WebDriverAgentRunner和目标设备

  • 运行 Product -> Test
    一切正常的话,手机上会出现一个无图标的WebDriverAgent应用,启动之后,马上又返回到桌面。

  • 个人免费证书第一次运行需要信任证书
    日志信息如下:

    Verify the Developer App certificate for your account is trusted on your device. Open Settings on Vic小叶子 and navigate to General -> Device Management, then select your Developer App certificate to trust it.

原因:开发者人员程序未受信任
解决:进入手机设置-> 通用-> 描述文件与设备管理-> 点击开发者应用,信任一下就好了。

此时控制台界面可以看到设备的IP。如果看不到的话,使用这种方法打开
-w607
-w1248

  • 通过上面给出的IP和端口,加上/status合成一个url地址。例如http://10.0.0.1:8100/status,然后浏览器打开。如果出现一串JSON输出,说明WDA安装成功了。

    实际情况,我到这一步访问这个地址无响应:
    原因:部分国行的iphone机器通过IP和端口还不能访问
    解决:需要将手机的端口转发到Mac上(端口转发见下文)

端口转发

有些国产的iPhone机器通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上。

  • 安装libimobiledevice
1
2
3
4
5
6
7
brew update
brew uninstall --ignore-dependencies libimobiledevice
brew uninstall --ignore-dependencies usbmuxd
brew install --HEAD usbmuxd
brew unlink usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
  • 转发端口
    iproxy 8100 8100 UDID
    使用iproxy –help 可以查到更具体的用法。

  • 查询UDID
    instruments -s

这时通过访问http://localhost:8100/status,如果出现一串JSON输出,说明WDA安装成功了。

inspector

是用来查看UI的图层,方便编写测试脚本
inspector的地址是:http://localhost:8100/inspector
-w1673

使用终端替代Xcode

通常来说为了持续集成,能够全部自动化比较好一些
启动 WebDriverAgent,官方提供了四种方式:

  1. Xcode
  2. xcodebuild
  3. Using fbsimctl from FBSimulatorControl framework
  4. Using FBSimulatorControl framework directly
1
2
3
4
5
6
7
8
9
# 解锁keychain,以便可以正常的签名应用,
PASSWORD="replace-with-your-password"
security unlock-keychain -p $PASSWORD ~/Library/Keychains/login.keychain

# 获取设备的UDID
UDID=$(idevice_id -l | head -n1)

# 运行测试
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test