Appium 源码安装环境配置 iOS篇
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium 源码安装环境配置 iOS篇相关的知识,希望对你有一定的参考价值。
一、安装环境介绍
-
macOS 10.12.4
-
Xcode 8.3.2
-
适用机型:ios9 及以上机型
二、Appium源码安装
Xcode升级8.2之后不再支持UIAutomation,转而使用XCUITest;故当Xcode版本为8.2及以上版本时,只能安装Appium 1.5.3之后版本。Appium 1.5.3是基于UIAutomation底层驱动,即使安装成功也无法正常使用。
在实际安装过程中出现过Appium 1.6.3版本安装一直失败的情况,故以下以1.6.4-beta版本为例。但也可以尝试安装1.6.3版本,建议优先选择正式版本安装。
同时1.5.3之后的版本没有图形界面版本,故使用源码安装。
1、安装brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2、安装libimobiledevice
brew install libimobiledevice --HEAD
3、安装carthage
brew install carthage
4、安装node.js
进入 https://nodejs.org/en/download/ 下载.pkg并安装
5、安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
6、安装ios-deploy
cnpm install -g ios-deploy
7、安装xcpretty
gem install xcpretty
8、卸载原有Appium
$ npm uninstall appium -g
$ npm cache clean
9、安装Appium
$ npm i -g [email protected]
10、查看安装情况
$ appium -v(出现版本号即安装成功)
11、安装appium-doctor
$ npm i -g appium-doctor
12、检查Appium环境
$ appium-doctor
当全为√时,Appium安装后后环境一切正常,若出现问题请参考下面的问题汇总
13、安装RoutingHttpServer库
背景:安装Appium后会有一个WebDriverAgent的iOS App工程,但未安装RoutingHttpServer库时无法编绎通过
$ cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
$ mkdir -p Resources/WebDriverAgent.bundle
$ sh ./Scripts/bootstrap.sh -d
14、WebDriverAgent工程配置
(a)Xcode打开 WebDriverAgent.xcodeproj 工程
目录:/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent)
(b)修改iOS Deployment Target 为iOS 9.0
若不修改仅支持9.3以上版本
需修改project、所有targets中相应参数
(c)修改BundlID(必须修改,不能使用默认值)
修改5个targets中的 Product Bundle Identifier 参数
-
个人账户(不付费账户):可以按自己的需求修改
-
企业账户(付费账户):若使用公司的账户,需修改为特定的值(请联系我)
-
(d)编绎工程
编绎WebDriverAgentLib、WebDriverAgentRunner、WebDriverAgentRunner-nodebug、IntegrationApp;全部编绎通过,即工程配置完成;
(e)启动Appium 服务
$ appium -a 127.0.0.1 -p 4723
(f)校验Appium服务是否可用
$ xcodebuild -project /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=设备UDID test
出现如下内容,则服务可用:
Test Case ‘-[UITestingUITests testRunner]‘ started.
t = 0.00s Start Test at 2017-05-09 21:49:32.939
t = 0.01s Set Up
2017-05-09 21:49:32.968 XCTRunner[663:156885] Built at May 9 2017 21:49:21
2017-05-09 21:49:33.006 XCTRunner[663:156885] ServerURLHere->http://10.1.17.177:8100<-ServerURLHere
三、问题汇总
1、appium-doctor:Xcode Command Line Tools 未安装
xcode-select --install
2、appium-doctor:adb、android未找到
(a)建议安装android ADT(http://tools.android-studio.org/index.php/adt-bundle-plugin)下载后直接解压就可以使用
(b)配置环境变量
1. 打开 .bash_profile文件
$ cd ~
$ open -e .bash_profile
2. 添加如下内容:
其中/Users/XXX/Documents/1--XXX/Automation/adt-bundle-mac-x86_64-20131030为ADT解压后的目录
export PATH=${PATH}:/Users/XXX/Documents/1--XXX/Automation/adt-bundle-mac-x86_64-20131030/sdk/platform-tools
export PATH=${PATH}:/Users/XXX/Documents/1--XXX/Automation/adt-bundle-mac-x86_64-20131030/sdk/tools
export ANDROID_HOME="/Users/XXX/Documents/1--XXX/Automation/adt-bundle-mac-x86_64-20131030/sdk"
export PATH=${PATH}:/Users/XXX/Documents/1--XXX/Automation/adt-bundle-mac-x86_64-20131030/sdk/tools:/Users/XXX/Documents/1--XXX/Automation/adt-bundle-mac-x86_64-20131030/sdk/platform-tools:/$JAVA_HOME/bin
3. 保存并关闭 .bash_profile文件
4. 更新配置的环境变量
source .bash_profile
(c)appium-doctor:JavaHome 环境
1. mac 一般内置安装了JAVA,可以先尝试配置环境变量
2. 在.bash_profile文件中添加如下内容
export JAVA_HOME=/usr
3. 若仍有问题,尝试重新安装
(d)code: 65, signal: null;code: null, signal: SIGKILL
一般在【二、步骤16】 检验时报错误:
>> xctest-client.js:202:14 [master] pid:17430 xctest client exit with code: 65, signal: null
>> xctest-client.js:230:14 [master] pid:17430 iproxy exit with code: null, signal: SIGKILL
>> xctest-client.js:157:16 [master] pid:17430 deviceconsole exit with code: null, signal: SIGKIL
出现此问题的原因基本都是WebDriverAgent工程配置时配置不正确,基本为证书问题,按照【二、步骤14】重新配置工程,保证可以全部编绎通过。
四、缺陷
-
此版本的Appium,无法使用inspecter获取控件信息(后续会提供app-inspecter进行控件获取的方法)
-
因WebDriverAgent工程编绎的ipa程序只能安装在iOS9以上,故无法在iOS7?iOS8上做自动化
以上是关于Appium 源码安装环境配置 iOS篇的主要内容,如果未能解决你的问题,请参考以下文章