appium 环境搭建

  • 安装homebrew(Mac OSX上的软件包管理工具)
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 安装libimobiledevice(一个跨平台的软件库,支持 iPhone, iPod Touch, iPad and Apple TV 等设备的通讯协议)
$ brew install libimobiledevice --HEAD
  • 安装carthage([使用Swift 语言编写,只支持动态框架,只支持 iOS8+的Cocoa依赖管理工具)
$ brew install carthage
  • 安装node
$ brew install node
  • 安装npm(NodeJS包管理和分发工具)
$ brew install npm
  • 安装cnpm(国内直接用npm下载安装会有好多网络问题,安装淘宝的cnpm要比npm好用)
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 安装ios-deploy(一个使用命令行安装ios app到连接的设备的工具)
$ cnpm install -g ios-deploy
  • 安装xcpretty(用于对xcodebuild的输出进行格式化)
$ gem install xcprett
  • 安装appium-desktop

  • 安装时遇到的一些问题

    • 报错command line tools: gradle is uninstalled的解决办法:brew install gradle
    • xcodebuild failed with code 65的解决办法:这个问题是webdriveragent文件不兼容导致的,下载一个兼容的(https://github.com/facebookarchive/WebDriverAgent),替换一下这个文件,code65的问题就解决了。新版的appium-desktop的webdriveragent已经可以直接编译使用了,建议更新appium版本

WebDriverAgent编译

  • 使用xcode打开WebDriverAgent.xcodeproj(/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj)
  • build时需要指定一个Development team,可以用个人Apple ID账号,生成个人证书和team(在Xcode->Preferences->Account中配置),也可以让开发团队的同事给你添加一个账号
  • PROJECT->WebDriverAgent、TARGETS->WebDriverAgentLib->General->Identity,Bundle Identifier使用一个新名字
  • PROJECT->WebDriverAgent、TARGETS->WebDriverAgentLib->General->Signing,勾选Automatically manage signingteam选择上个步骤新添的账号
  • PROJECT->WebDriverAgent、TARGETS->WebDriverAgentLib->Build settings->Packaging,Product Bundle Identifier使用一个新名字,因为Bundle ID不能重复

  • PROJECT->WebDriverAgent、TARGETS->WebDriverAgentRunner->General->Signing,勾选Automatically manage signingteam选择上个步骤新添的账号
  • PROJECT->WebDriverAgent、TARGETS->WebDriverAgentRunner->Build settings->Packaging,Product Bundle Identifier使用一个新名字

  • 点击Product->Destination,选择要测试的手机
  • 点击Product->Scheme,选择WebDriverAgentRunner
  • 点击Product->Build,编译工程文件,手机上出现WebDriverAgent应用表示安装成功!

编译时遇到的一些问题

  • 编译失败原因1:版本问题 查看当前xcode版本是否支持appium版本
  • 编译失败原因2:检查上述步骤是否全部修改正确
  • 编译失败原因3:重新编译之前先清除上次编译失败的文件 Product->clean build folder
  • 使用appium启动app后闪退,然后一直无限循环启动和闪退的问题:导致这个问题的原因是你的WebDriverAgent没有使用有效的账号编译,所以每次启动app后,app会强制关闭,appium判断WebDriverAgent状态为关闭又会再次启动,app再次关闭。。。。因此无限循环。解决办法是卸载手机上的WebDriverAgent,使用有效的账号进行编译即可。
 

Appium+ios环境搭建的更多相关文章

  1. Mac+appium+iOS 环境搭建

    Mac+appium+iOS 环境搭建,需要用到的信息如下,参考搭建环境. 1.安装brew,安装介绍:https://jingyan.baidu.com/article/fec7a1e5ec3034 ...

  2. appium+robotframework环境搭建

    appium+robotframework环境搭建步骤(Windows系统的appium自动化测试,只适用于测试安卓机:ios机需要在mac搭建appium环境后测试) 搭建步骤,共分为3部分: 一. ...

  3. Appium之环境搭建

    Appium:是开源.跨平台.多语言支持的移动应用自动化工具 测试对象主要有:① 原生app ② 混合app(h5 + web前端基础) ③ 移动web app 测试对象APPy运行平台:  ① io ...

  4. 全网最全最细的appium自动化测试环境搭建教程以及appium工作原理

    一.前言 ​ 对于appium自动化测试环境的搭建我相信90%的自学者都是在痛苦中挣扎,在挣扎中放弃,在放弃后又重新开始,只有10%的人,人品比较好,能够很快并顺利的搭建成功.appium 自动化测试 ...

  5. 『与善仁』Appium基础 — 14、Appium测试环境搭建

    目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...

  6. RobotFramwork + Appium+ Andriod 环境搭建

    RF+Appium+Android环境搭建教程 - 1.RF安装 一.适用操作系统 Win7 旗舰版Sp1 32位操作系统 RF环境搭建,请参考文档<RobotFramwork安装指南> ...

  7. React Native iOS环境搭建

    前段时间React Native for Android发布,感觉React Native会越来越多的公司开始研究.使用.所以周六也抽空搭建了iOS的开发环境,以便以后利用空闲的时间能够学习一下. 废 ...

  8. 初探appium之环境搭建

    前段时间一直在折腾python的爬虫,想搞接口自动化.但是写了一个月,发现在我现在的这份的工作中根本接触不到接口.所以就想先放下来,先做点目前能够接触到的,也需要做的东西. 东西越来越多,人手不足.自 ...

  9. Visual Studio 2013 Xamarin for iOS 环境搭建

    原文:Visual Studio 2013 Xamarin for iOS 环境搭建 一.Mac安装Xamarin.iOS 1,我的Mac 环境:OSX 10.10.3.Xcode 6.3.2 (使用 ...

随机推荐

  1. MySQL读写问题(锁)

    一.概述 读-读:并发不存在问题,不需要加锁 写-写:并发存在问题,可能会造成脏写(一个事务没有写完,另一个事务也对相同的数据进行写),但是这种情况,任何一种隔离级别都不允许发生,在隔离级别的时候就解 ...

  2. Python初学笔记之字符串

    一.字符串的定义 字符串是就一堆字符,可以使用""(双引号).''(单引号)来创建. 1 one_str = "定义字符串" 字符串内容中包含引号时,可以使用转 ...

  3. maven 中的工程依赖和层级依赖?

    一.什么是工程依赖? 思考问题?1.1一旦开始分模块开发的时候,之前的所有包都会被拆分成一个一个的项目 model mapper service ... 其实mapper需要model的支持,怎么解决 ...

  4. Antd组件Table树型多选全选问题

    组件库antd里面的树型选择不能做到勾选父组件然后一起勾选子组件情况,我也不知道是组件库的问题还是原本设计就是这样 刚好组件库存在rowselection的配置项,既然存在拓展方法,又遇到需求,那么就 ...

  5. 收集有用的 Javascript 片段

    内容目录 数组 arrayMax arrayMin chunk compact countOccurrences deepFlatten difference distinctValuesOfArra ...

  6. 获取公网ip,获取用户城市地址

    <?php class GetIp { public static $api = 'http://ip.taobao.com/service/getIpInfo.php?ip='; public ...

  7. 利用ICMP协议的PING命令获取客户端当前网络质量 by徐文棋

    无论在windows下,linux也好,unix也好,都可以通过 Ping命令获得当前设备的网络延迟,延迟是客户端到服务端的网络响应时间.通常延迟越低,反应速度越快 这里使用了SimplePing   ...

  8. Python—经典练手题目汇总

    Python-经典练手题目汇总 # 1.有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两# 个,问几天以后能卖完? day=0 xg=1020 for i in rang ...

  9. Lesson11——NumPy 位运算

    NumPy 教程目录 Lesson11--NumPy 位运算 NumPy "bitwise_" 开头的函数是位运算函数. NumPy 位运算包括以下几个函数: 函数 描述 bitw ...

  10. WPF之复选MVVM TreeView(TreeView+CheckBox)

    需求背景: 当我们用到权限菜单栏时权限菜单栏属于递归效果,我们需要用到TreeView+CheckBox进行组合复选开发时,我们需要解决此类问题时怎么办,那么就引出今天的小笔记内容 实现方式: 下载M ...