操作系统的名称:Mac OS X
操作系统的版本:10.13.3

xcode 版本:9.2

java 版本:java8_161

appium destop版本:1.7.3

接下来我们开始踏上搭建Appium+java+ios之路,本文只说个大概,毕竟本机已经装过了,我就不在折腾了,耗费好几天时间才搞定。

一:安装JAVA。配置环境变量

可以在/etc/profile里配置

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
      export PATH=$JAVA_HOME/bin:$PATH

再输入命名 source /etc/profile 使生效

二:安装Appium

  1.作者系统安装的Appium destop版本为:1.7.2,个人觉得destop 版本比较方便。

三:安装Homebrew

  先来看下Homebrew是个什么东东,Homebrew就相当于linux的yum. 官网https://brew.sh/index_zh-cn.html,Homebrew
能干什么?使用 Homebrew 安装 Apple 没有预装但 你需要的东西。Homebrew 会将软件包安装到独立目录,并将其文件软链接至
/usr/local 。Homebrew 不会将文件安装到它本身目录之外,所以您可将 Homebrew 安装到任意位置。轻松创建你自己的
Homebrew 包。完全基于 git 和 ruby,所以自由修改的同时你仍可以轻松撤销你的变更或与上游更新合并。Homebrew
的配方都是简单的 Ruby 脚本,Homebrew 使 macOS 更完整。使用 gem 来安装 gems、用 brew
来安装那些依赖包。更多介绍请上官网。

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

  2.检查是否安装成功:brew -v,作者系统安装的版本号为:1.3.2

四:安装Node (Appium 需要使用Node 服务端)

  1.安装:终端执行:brew install node。

  2.检查是否安装成功:终端输入node -v,如果显示版本号说明安装成功,作者安装版本为:v6.11.3

五:安装ideviceinstaller

  1.说明:与iOS设备通信的跨平台库和工具,用于给iOS设备安装卸载应用或者备份应用。该工具是基于libmobiledevice的,因此首先要完成 libmobiledevice的编译安装。

  2.终端执行:brew install ideviceinstaller

  3.如果步骤2执行报错,有可能是没有安装carthage,终端执行brew install carthage

  4.检查是否安装成功,如出现下图则表示安装成功。

ideviceinstaller 的用处

1. 命令 idevice_id -l 可以获取UDID

2. 命名 ideviceinstaller -l 可以获取bundle id

Carthage 的用处

发现在webdriver agent 里的framework里需要用到Carthage 里的一个包

六:安装 appium-doctor

npm install -g appium-doctor

appium-doctor检查如下,打勾就是检查正常,打叉就是不正常。我这里有打叉的,是因为我没有配置android 环境,对我Ios 的没有影响

七:安装xcode

  1.安装:可以AppStore中打开并下载

  2.检查是否安装成功:终端执行xcodebuild -version,作者安装版本为:Xcode 9.2

八:安装Xcode Command Line Tools

  1.Xcode安装完成后启动终端,在终端输入xcode-select --install

九:手机端安装WebDriverAgent

新版本的xcode 做ios 测试需要使用 webDriverAgent, 简单解释,测试前需要使用xcode往真机上安装签名证书,测试时可以看到会先往测试设备上安装一个webDriverAgent 的APP 然后通过这个app 来测试被测app。具体大家可以搜索一下webdriveragent 来了解。

  1.安装ios(webdriver)步骤

  安装appium-xcuitest-driver
  npm install -g ios-deploy (ios-deploy 在真机测试时需要用到
  cd /usr/local/lib/node_modules/appium
  npm uninstall appium-xcuitest-driver
  npm install appium-xcuitest-driver@2.38.0
  注:appium自带的appium-xcuitest-driver版本过低,需重新安装

  2、配置WebDriverAgent环境
  cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
  mkdir -p Resources/WebDriverAgent.bundle
  sh ./Scripts/bootstrap.sh -d (此步骤是为了重新编译webDriverAgent 文件,并下载相应的依赖包,查看问题一

  3.编译WebDriverAgent,双击 WebDriverAgent.xcodeproj或者执行如下命令, 系统自动会用Xcode打开

  Open /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj

网上关于WebDriverAgent 编译过程一般写的比较复杂,我这里写个简单点的,两个步骤供大家参考,先看下面这两个图

1. 左边列出来工程里的TARGETS文件每个都要做右边的操作,操作是在Genaral tab里配置你的apple id,在Build settings 页里把Bundle id 改成唯一的。

2.在WebDriverAgentRunner -> Build Phases 里加上下面两个framework

下面的图来源自网络,大家可以参考着配上面两个步骤的内容,多的部分不用看

    (1). 编译WebDriverAgentLib

    

    (2).编译WebDriverAgentRunner

    

    

    (3).在终终端输入:xcodebuild -project WebDriverAgent.xcodeproj -scheme
WebDriverAgentRunner -destination 'id=udid'
test,待执行完成后手机端会安装WebDriverAgent。

问题一:WebDriverAgent 编译报错,无法找到RoutingHttpServer.h 头文件

原因:在XCODE 的WebDriverAgent工程的 WebDriverAgentRunner 页面的 Build Phase tab上的copy frameworks选项上,需要配置两个framework, 其中一个是carthage 的,这个没有配置好

解决办法:1. 先装carthage

2. 再编译一次 sh ./Scripts/bootstrap.sh -d

问题二:Could not determine Xcode version:Could not get Xcode version. /Library/Developer/Info.plist does not exist on disk.

原因:Xcode 的一个什么路径配置要改,修改命令如下

解决办法:sudo xcode-select --switch /Applications/Xcode.app

  

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

  1. 【转】NO.1、 appium之ios环境搭建

    首先感谢iOS开发同学无私的帮助.   一.环境及版本: xcode:7.1,我是百度下的dmg文件,直接装的,这个太大了,请自行百度,或升级自己的xcode,一般都不需要这一步. appium:1. ...

  2. appium+python+iOS 环境搭建与使用中常见问题的解决方案链接

    (1)WebDriverAgent 安装入门篇:https://www.cnblogs.com/zhanggui/p/9239827.html 重点摘要: 在WDA的Github上也给出了WDA的特性 ...

  3. appium+python+iOS 环境搭建,安装fbsimctl

    (1)设置postBuffer的值 开始如下的安装之前,需先修改postBuffer的值,默认的比较下,会导致下载大文件时失败, 参考链接:http://blog.sina.com.cn/s/blog ...

  4. Mac+appium+iOS 环境搭建

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

  5. React Native iOS环境搭建

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

  6. 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 (使用 ...

  7. Appium移动自动化测试之—基于java的iOS环境搭建

    本文仅供参考,同时感谢帮助我搭建环境的同事 操作系统的名称:Mac OS X操作系统的版本:10.12.6 接下来我们开始踏上搭建Appium+java+ios之路,本文只说个大概,毕竟本机已经装过了 ...

  8. Appium+ios环境搭建

    appium 环境搭建 安装homebrew(Mac OSX上的软件包管理工具) $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubuse ...

  9. appium+python自动化☞环境搭建

    前言:appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.略懂Python,所以接下来的教程是 appium+pyt ...

随机推荐

  1. eclipse中常用提高效率的快捷键

    Eclipse快捷键 10个最有用的快捷键 5 4 Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的 ...

  2. .25-浅析webpack源码之事件流compilation(3)

    这一节跑下一批plugin. compiler.apply( new EnsureChunkConditionsPlugin(), new RemoveParentModulesPlugin(), n ...

  3. 【学习笔记】js下拉刷新、上拉加载 mescroll框架的使用

    写在前边: 工作需要,使用ajax在原来的列表下边使用ajax请求后台数据,拼接在列表最下边,在github转了好久,发现了一个bug极多的js刷新插件,尝试了一个下午,就在快放弃的时候,发现下边有留 ...

  4. SVN版本库修改URL路径或者IP地址

    服务器的IP地址或者URL变更,版本库服务器的IP也要修改,因为当初安装SVN URL没有使用别名,所以使用的人都要修改客户端的IP,以下是参考网上的资料. 1.Windows TortoiseSVN ...

  5. 注解Responsebody RequestBody RequestMapping

    编写代码时候很容易遗漏注解,尤其比较重要的注解,调试很久也找不到原因,在处理页面请求异常时,如果后台正常,就是发现没有把想要的对象传到页面就注意下看注解是否缺失?例如:/** * @Author gj ...

  6. 如何从Android工程导出apk安装包

    http://jingyan.baidu.com/article/1876c852b3208b890b137606.html

  7. Angular4+路由

    路由的作用就是(导航):会加载与请求路由相关联的组件,并获取特定路由的相关数据,这允许我们通过控制不同的路由,获取不同的数据,从而渲染不同的页面: 几种常见的路由配置: Angular路由器是一个可选 ...

  8. CCF系列之图像旋转(201503-1)

    试题编号: 201503-1时间限制: 5.0s 内存限制: 256.0MB 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表 ...

  9. 捕获arm托管磁盘虚拟机,并进行还原

    背景:托管磁盘虚拟机"hlmma69n2",附加了一块100GB的数据磁盘.可以通过Portal管理界面直接捕获该虚拟机并进行还原,详情见如下步骤: 1.在虚拟机内部执行一般化的操 ...

  10. web项目各个clean

    project clean:清楚tomcat下的已编译的java类.class文件,包括js但不包括jsp server clean:clean tomcat work dictionary:清除to ...