前言

之前写了两篇关于 STF 集成 iOS 的文章
STF 集成 iOS 之设备连接
STF 集成 iOS 之远程控制
虽然没什么响应,但是还是有同学希望能开源出来,秉着相互学习的心态,就把它开源出来吧。

项目地址

https://github.com/mrx1203/stf.git
https://github.com/mrx1203/WebDriverAgent.git
iOS 的集成依赖于 WebDriverAgent,我对 WebDriverAgent 做了一些小改动,以更好的支持 iOS 的远程操控。

部署方法

iOS 是以增加一个 ios-provider 和 ios-device 的形式集成的,所以,STF 原来的服务不受任何影响,之前怎么部署,现在还是怎么部署。

环境准备

安装 libimobiledevice 等依赖工具。

brew install  usbmuxd
brew link usbmuxd
brew install libimobiledevice
brew install ideviceinstaller
brew install carthage
brew install socat

安装 stf 依赖:brew install graphicsmagick zeromq protobuf yasm pkg-config

clone 代码WebDriverAgent,假设代码存放路径为/Users/test/Desktop/WebDriverAgent/,这个路径在启动 ios-provider 是通过--wda-path 传入。配置好 WebDriverAgent,具体方法自行搜索。

启动 ios-provider

因为 ios-provider 需要使用 xcodebuild 等 mac 下的命令行工具,而 docker 容器中并没有提供这类工具,所以不能用 docker 来部署 ios-provider,只能通过源码方式部署。部署步骤如下:
(1)拉取源代码git clone https://github.com/mrx1203/stf.git
(2)切换到 stf 目录下,安装依赖库 npm install;npm install --save request;npm install --save request-promise
(3)启动 ios-provider,假设主服务器的 ip 地址为 172.28.28.36,该节点的 ip 地址为 172.28.28.49

stf ios-provider --name "mac081" --connect-sub tcp://172.28.28.36:7250 \
--connect-push tcp://172.28.28.36:7270 --storage-url http://172.28.28.36 \
--public-ip 172.28.28.49 --heartbeat-interval 20000 \
--wda-path /Users/test/Desktop/WebDriverAgent/ --wda-port 8100

如果你没有部署过 STF,那么直接 stf local --public-ip 172.28.28.49 --wda-path /Users/test/Desktop/WebDriverAgent/ --wda-port 8100

感谢

我们是站在巨人的肩膀上做的拼接,特别感谢以下开源项目作者。
https://github.com/openstf/stf
https://github.com/appium/WebDriverAgent
https://github.com/macacajs/app-inspector

集成过程中有问题的,欢迎加群交流,QQ 群:768710274

更新:

基于官方 2020.3.18 的版本集成 iOS,更新代码时请同步更新 WDA


↙↙↙阅读原文可查看相关链接,并与作者交流