OpenStf iOS 部署

OpenStf iOS 适配

  • macOS 10.14.4
  • node 8.15.0

  • python 2.7.15

  • Xcode 10.0

nvm,pyenv,xcversion

1. 环境准备

安装libimobiledevice等依赖工具,如果已经安装过,可能需要升级,先卸载,再安装最新版本

1
2
3
4
5
6
7
8
9
10
11
12
brew uninstall --ignore-dependencies usbmuxd
brew uninstall --ignore-dependencies libimobiledevice
brew uninstall --ignore-dependencies ideviceinstaller

brew install --HEAD usbmuxd
#brew unlink usbmuxd
#brew link usbmuxd

brew install --HEAD libimobiledevice
brew install --HEAD ideviceinstaller
brew install carthage
brew install socat

2. 安装 stf 依赖:

1
brew install graphicsmagick libsodium zeromq protobuf yasm pkg-config

3. 配置 WebDriverAgent

1
2
3
4
5
6
7
8
9
10
# git clone -b v0.1.1 https://github.com/mrx1203/WebDriverAgent.git
git clone https://github.com/mrx1203/WebDriverAgent.git

cd WebDriverAgent

# 修改 bundleID,修改证书,修改Schema
open WebDriverAgent.xcodeproj

# Validating Inspector 有问题,注释了。
./Scripts/bootstrap.sh

使用的 Xcode 10.0,Xcode 10.2.1 版本 linker 有问题,提示找不到 XCEventGenerator。

4. 启动 ios-provider

  • 拉取源代码
1
git clone https://github.com/mrx1203/stf.git
  • 安装依赖库
1
cd stf
1
CXXFLAGS="-mmacosx-version-min=10.9" LDFLAGS="-mmacosx-version-min=10.9" npm install; npm install --save request; npm install --save request-promise

检查组件是否都正常

1
bin/stf doctor
  • 启动ios-provider,假设主服务器的ip地址为10.8.8.128,该节点的ip地址为192.168.1.24。
1
bin/stf ios-provider --name "mac001" --connect-sub tcp://10.8.8.128:7250 --connect-push tcp://10.8.8.128:7270 --storage-url http://10.8.8.128 --public-ip 192.168.1.24 --heartbeat-interval 20000 --wda-path /Users/jinlong/projects/mrx1203/WebDriverAgent --wda-port 8100

挂载

1
ideviceimagemounter /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/12.0/DeveloperDiskImage.dmg  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/12.0/DeveloperDiskImage.dmg.signature

截图

1
idevicescreenshot -u 81940f3e74cd76f934c7a6ebec5ea038eb3f7e1d 81940f3e74cd76f934c7a6ebec5ea038eb3f7e1d.png

改造官方 stf

拉取官方代码

OpenStf 3.4.1

1
git clone -b v3.4.1 https://github.com/openstf/stf.git

复制代码到官方代码目录下

  1. 拷贝lib/cli下的ios-device,ios-provider,local三个文件夹,local文件夹可以直接覆盖。
  2. 覆盖lib/cli下的index.js
  3. 拷贝lib/units下的ios-device,ios-provider
  4. 覆盖lib/units/storage/plugins/apk/task/manifest.js文件。
  5. 拷贝lib/util下的ipareader.js,download.js文件;ipa文件解析和下载。
  6. 覆盖lib/wire/wire.proto文件。
  7. 覆盖res/app/components/stf/install/install-service.js文件;ipa文件的安装。
  8. 覆盖res/app/components/stf/storage/storage-service.js文件;上传ipa文件。
  9. 覆盖package.json添加了依赖模块。

安装依赖库

1
CXXFLAGS="-mmacosx-version-min=10.9" LDFLAGS="-mmacosx-version-min=10.9" npm install; npm install --save request; npm install --save request-promise

检查组件是否都正常

1
bin/stf doctor

复制 WebDriverAgent 到 stf 目录

1
2
cd stf
cp WebDriverAgent .

启动

1
bin/stf local

错误

idevicescreenshot not working

xcode10版本的问题, 找不到XCElementSnapshot头文件

node-gyp ‘utility’ file not found CXXFLAGS="-mmacosx-version-min=10.9" LDFLAGS="-mmacosx-version-min=10.9" npm i

iproxy 208 错误 ps -ax|grep -i "iproxy"|grep -v grep|awk '{print "kill -9 " $1}'|sh

参考

STF 集成 iOS 之 开源了

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. OpenStf iOS 适配
    1. 1.1. 1. 环境准备
    2. 1.2. 2. 安装 stf 依赖:
    3. 1.3. 3. 配置 WebDriverAgent
    4. 1.4. 4. 启动 ios-provider
  2. 2. 改造官方 stf
    1. 2.1. 拉取官方代码
    2. 2.2. 复制代码到官方代码目录下
  3. 3. 错误
  4. 4. 参考
,