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. JAVA线程的执行状态统计

    jstack `jps|grep Bootstrap|awk '{print $1}'`|grep "java.lang.Thread.State:"|awk '{print $2 ...

  2. SDUT-3340_数据结构实验之二叉树一:树的同构

    数据结构实验之二叉树一:树的同构 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 给定两棵树T1和T2.如果T1可以通过 ...

  3. 《C语言深度解剖》学习笔记之预处理

    第3章 预处理 1.下面两行代码都是错的.因为注释先于预处理指令被处理,当这两行被展开成“//……”和“/*……*/”时,注释已处理完毕,所以出现错误 #define BSC // #define B ...

  4. 模板—树上倍增LCA

    int LCA(int x,int y) { if(x==y)return x; if(dep[x]>dep[y])swap(x,y); while(dep[x]<dep[y]) ;;i+ ...

  5. 2018-8-10-UWP-WPF-解决-xaml-设计显示异常

    title author date CreateTime categories UWP WPF 解决 xaml 设计显示异常 lindexi 2018-08-10 19:16:53 +0800 201 ...

  6. 洛谷P5664 Emiya 家今天的饭 问题分析

    首先来看一道我编的题: 安娜写宋词 题目背景 洛谷P5664 Emiya 家今天的饭[民间数据] 的简化版本. 题目描述 安娜准备去参加宋词大赛,她一共掌握 \(n\) 个 词牌名 ,并且她的宋词总共 ...

  7. HTML静态网页--JavaScript-DOW操作

    1.DOM的基本概念 DOM是文档对象模型,这种模型为树模型:文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西. 2.Windows对象操作 一.属性和方法: 属性(值或者子对象): o ...

  8. SuperSocket获取所有连接上的 Session

    你也可以从 AppServer 实例获取所有连接上的 session 然后推送数据到所有客户端: foreach(var session in appServer.GetAllSessions()) ...

  9. javascript 元素的大小

    1.偏移量 元素的可见大小由其高度.宽度决定,包括所有内边距.滚动条和边框大小(不包含外边距).通过下列4个属性可以获取元素的偏移量: offsetHeight: offsetWidth: offse ...

  10. 【原生JS】滑动门效果

    效果图: 思路:通过每次鼠标移动至目标上使所有图片重置为初始样式再向左移动目标及其左侧每个图片隐藏部分距离即实现. HTML: <!DOCTYPE html> <html> & ...