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 xcpretty
  • 安装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,使用有效的账号进行编译即可。

apium环境搭建(mac)的更多相关文章

  1. (一)Hololens Unity 开发环境搭建(Mac BOOTCAMP WIN10)

    (一)Hololens Unity 开发环境搭建(Mac BOOTCAMP WIN10) 系统要求 64位 Windows 10 除了家庭版的 都支持 ~ 64位CPU CPU至少是四核心以上~ 至少 ...

  2. Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)

    Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...

  3. vue开发环境搭建Mac版

    一.前言 要做一个移动端app,面对webapp最流行的三个技术React,angular,vue,三选一,如何选,可参考blog移动app技术选型,react,angular, vue, 下面是对  ...

  4. quick-cocos2d-x 系列之——环境搭建(Mac版)

    quick-cocos2d-x简单介绍 何为quick-cocos2d-x? ?   简单一句话:quick-cocos2d-x是採用lua语言,通过tolua++工具对cocos2d-x进一步封装, ...

  5. JAVA开发环境搭建(Mac)

    1. 打开Terminal, 执行命令: java -version 即可查看到我们所安装的jdk版本. 2.安装jdk成功之后,我们还需要配置jdk环境变量. 使用命令: /usr/libexec/ ...

  6. django系列 1 :python+django环境搭建 +mac提示找不到manage.py命令

    1.安装python3 2.设置python3的环境变量 3.进入命令行模式,输入 pip install django 1.10.3 4.验证是否安装完成 pip show django 5.dja ...

  7. 最详细的JavaWeb开发基础之java环境搭建(Mac版)

    阅读文本大概需要 5 分钟. 我之前分享过在 Windows 下面配置 Java 环境,这次给大家带来的是 Mac 下面安装配置 Java 环境.首先 Mac 系统已经带有默认的 Java,但是由于使 ...

  8. Go运行环境搭建(Mac\Linux)

    转载:http://blog.csdn.net/nellson/article/details/51523159 1. 下载安装文件 http://www.golangtc.com/download ...

  9. XMPP环境搭建 (mac环境下 安装自己独立的mysql与服务器(openfire),实现即时聊天功能)

    1简单概览 [一]XMPP简介 http://xmpp.org 即时通讯技术 IM - Instant Messaging ⽀支持⽤用户在线实时交谈.交谈双⽅方都需要⼀一个聊天窗⼝口,其中⼀一个⽤用户 ...

随机推荐

  1. phpexecl

    <?phpnamespace Admin\Controller;use Think\Controller;class InoutController extends Controller { p ...

  2. et al.

    et al.   英 [ˌet ˈæl]   adv. <拉>以及其他人; [例句]Earlier research in conventional RCS modelling for d ...

  3. uda 4.C++面向对象编程

    Python vs C++ 对比课   在本课中,你将学习如何用 C++ 编写类.像以前的课程一样,你需要比较 Python 的编程方式和 C++ 中编程方式的不同. 我们直接看例子.下面是一个名为 ...

  4. PHP中__FUNCTION__与__METHOD__的区别

    你知道php中__FUNCTION__与__METHOD__的区别吗?本文通过一个小例子,为大家介绍下二者的区别,有兴趣的朋友可以参考下.   PHP中__FUNCTION__与__METHOD__的 ...

  5. Android 高仿QQ滑动弹出菜单标记已读、未读消息

    在上一篇博客<Android 高仿微信(QQ)滑动弹出编辑.删除菜单效果,增加下拉刷新功能>里,已经带着大家学习如何使用SwipeMenuListView这一开源库实现滑动列表弹出菜单,接 ...

  6. artTemplate模版引擎的使用

    artTemplate: template.js 一款 JavaScript 模板引擎,简单,好用.提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不 ...

  7. Adam那么棒,为什么还对SGD念念不忘 (2)—— Adam的两宗罪

    在上篇文章中,我们用一个框架来回顾了主流的深度学习优化算法.可以看到,一代又一代的研究者们为了我们能炼(xun)好(hao)金(mo)丹(xing)可谓是煞费苦心.从理论上看,一代更比一代完善,Ada ...

  8. springboot activiti工作流简单示例

    最近一直研究springboot,根据工作需求,工作流需要作为一个单独的微服务工程来提供给其他服务调用,现在简单的写下工作流(使用的activiti)微服务的搭建与简单使用 jdk:1.8 数据库:m ...

  9. Python--day30--互联网协议与osi模型

  10. Python--day25--接口类

    接口类,起规范作用