iOS-remote 使用指南

简介

iOS-remote 是结合WebDriverAgentios-minicap 开源项目做出来的基于 JAVA 的 iOS 远程真机控制的项目。

平台

仅限 Mac 使用

特点

功能

安装要求

其他帮助文档

How to install ios-minicap

How to install WebDriverAgent

WebDriverAgent Q&A

Eclipse Import Maven Project

Configure Tomcat9 In Mac

安装

1、安装 Xcode

Xcode 这个可以去官网安装或者去我的网盘下载 Xcode8.3.3.xip

链接:http://pan.baidu.com/s/1hszRESW 密码:yogw

下载好 Xcode,还要下载 Command Line Tools

  1. 打开 mac 终端
  2. 在终端中输入以下命令:xcode-select --install ,按回车。

然后一路点确定安装即可

详情可见:http://blog.csdn.net/yxys01/article/details/73456973

2、安装 Homebrew

Homebrew 的安装很简单,只需在终端下输入如下指令:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrew 安装成功后,会自动创建目录 /usr/local/Cellar 来存放 Homebrew 安装的程序。 这时你在命令行状态下面就可以使用 brew 命令了.

详情可见:http://blog.csdn.net/yxys01/article/details/77452318

3、安装 node 和 npm

直接打开终端输入如下指令:

$ brew install node

执行完上面的命令,你就安装好了 nodejs 和 npm

4、安装前准备工作

(1) 需要安装 usbmuxd 以便于通过 USB 通道测试 iOS 真机,不需要测试真机则不用安装

$ brew install usbmuxd

(2) 请安装 carthage 来构建 WebDriverAgent.

$ brew install carthage

(3) 安装 libimobiledevice 和 ideviceinstaller

$ sudo brew update
$ sudo brew install libimobiledevice
$ sudo brew install ideviceinstaller

5、安装 ios-minicap

(1) 打开终端,clone 该项目:

$ git clone https://github.com/openstf/ios-minicap 

(2) 安装 libjpeg-turbo

$ brew install libjpeg-turbo 

(3) 安装 cmake

$ brew install cmake

(4) 启动 ios-minicap

详情可见:http://blog.csdn.net/yxys01/article/details/76442135 或者 https://testerhome.com/topics/10456

6、安装 WebDriverAgent

安装步骤详情可见:https://testerhome.com/topics/10463

(1) 打开终端,clone 该项目:

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

(2) 运行初始化脚本

$ cd /Users/yourname/WebDriverAgent

$ mkdir -p Resources/WebDriverAgent.bundle

$ sh ./Scripts/bootstrap.sh

该脚本会使用 Carthage 下载所有的依赖,使用 npm 打包响应的 js 文件

执行完成后,直接双击打开 WebDriverAgent.xcodeproj 这个文件。

(3) 安装中遇到一些问题,解决方案可见:

http://blog.csdn.net/yxys01/article/details/77045359

7、安装 iOS-remote

(1) 打开终端,clone 该项目:

$ git clone https://github.com/weamylady2/iOS_remote

or

$ git clone https://github.com/yxys01/iOS_remote

(2) 在 Eclipse 中打开 iOS_remote

打开 Eclipse

Import->Maven->Existing Maven Projects->Next->Browse(iOS_remote's path)->Finish

更改 iOS_remote 中的一些设置

Java Resources->src/main/resource->config.properties

在 config.properties 中改三个参数:minicapPath、wdaPath、bashPath

minicapPath=/Users/yourname/ios-minicap-master
wdaPath=/Users/yourname/WebDriverAgent
bashPath=/Users/yourname/ios_remote/src/main/resources
wdaPort=8200
minicapPort=12345

(3) 重新构建 ios-minicap

为了减少 MAC 的压力,我们需要减少从 minicaps 中发送 imgs 的频率。

在 ios-minicap 的文件夹中,编辑 src/minicap.cpp

添加一个方法:

static void sleep_ms(unsigned int secs)
{
struct timeval tval;
tval.tv_sec=secs/1000;
tval.tv_usec=(secs*1000)%1000000;
select(0,NULL,NULL,NULL,&tval);
}

然后在 main 中添加sleep_ms(50);

while (gWaiter.isRunning() and gWaiter.waitForFrame() > 0) {
client.lockFrame(&frame);
encoder.encode(&frame);
client.releaseFrame(&frame);
putUInt32LE(frameSize, encoder.getEncodedSize());
if ( pumps(socket, frameSize, 4) < 0 ) {
break;
}
if ( pumps(socket, encoder.getEncodedData(), encoder.getEncodedSize()) < 0 ) {
break;
}
sleep_ms(50);
}

重新构建 ios-minicap, 运行build.sh在 ios-minicap 文件夹中:

$ ./build.sh 
mkdir: build: File exists
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/waterhuang/Downloads/ios-minicap-master/build
[100%] Built target ios_minicap

8、运行 iOS_remote

(1) 新建一个终端,打开 iproxy

$ iproxy 8200 8100

(2) 再打开一个终端

$ cd /Users/yourname/iOS_remote
$ mvn tomcat7:run-war

(3) 打开浏览器,输入网址:http://localhost:8080/ios/ 即可

iOS-remote 安装篇

iOS-remote 安装篇之 ios-minicap 安装使用完全指南

iOS-remote 安装篇之 WebDriverAgent 安装使用完全指南

iOS-remote 安装篇之 iOS-remote 安装使用完全指南

参考文献

iOS-minicap + WDA 实现 ios 远程真机测试 https://testerhome.com/topics/10262
基于 WebDriverAgent 的 iOS 远程控制 https://testerhome.com/topics/8890
iOS 远程真机 (仅限屏幕查看) https://testerhome.com/topics/6470
WebDriverAgent 简介 https://testerhome.com/topics/4904
iOS 真机如何安装 WebDriverAgent https://testerhome.com/topics/7220
WebDriverAgent 天坑记 https://testerhome.com/topics/9666
STF 框架之 minicap 工具 https://testerhome.com/topics/3115

致谢

@codeskyblue
@weamylady

欢迎使用以及提出宝贵意见

@seveniruby
@Lihuazhang
@xdf
@chenhengjie123


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