说在前面的话
之前公司需要搭建一款Appium的ios测试环境,网上的也有不少相关教程,但是都基本都是早期的版本,此次将会使用最新版的·Appium Desktop 1.15.0 来总结此次搭建途中遇到的坑,希望可以帮助后面需要搭建此环境的同学们。
安装步骤
- Appium Desktop
截止今天最新版的版本是1.15.0,Appium-Desktop 如下图所示:

下载mac os平台的 appium,然后进行一路Next安装即可。 - Xcode:10.3
这里博主的mac系统版本为10.14.6如下图所示:

这里不建议使用最新版的mac catalina,笔者在此系统上遇到xcode编译项目失败的问题,而此版本的macos的xcode不存在此问题,因此下载此版本对应的Xcode版本即可,首先进入链接https://developer.apple.com/download/more/ 进入页面并使用apple id登录后可以看到如下画面:

找到并下载Xcode 10.3以及对应版本的Command line Tools for Xcode如下图所示:

下载完毕后,先将Xcode 10.3.xip解压后的程序移动到mac的应用程序目录即可,然后在安装dmg文件。 - JDK:1.8
关于JDK安装可以参考我之前写过的一篇文章JDK安装教程 进行安装即可,然后配置一下JDK的环境变量即可,如下图所示:

- brew
brew 是 Mac 下的一个包管理工具,类似于 centos 下的 yum,可以进行软件的安装、更新以及卸载等操作。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装过程如下图所示:

安装后查看安装brew版本:

- Node
AppiumDesktop是用Node.js编写的服务器,所以需要安装node。若你的电脑安装有brew环境直接输入下面命令行即可进行node的安装。
brew install node
完成执行node -v,查看安装node版本:

其中 NPM是Node.js包管理工具,下载安装Node.js会自动安装NPM,可以查看一下NPM的版本:

- ruby
一般macos自带ruby,如果没有请安装ruby环境,查看ruby的环境版本:

- git
由于许多组件下载都需要git进行相关组件下载,这里也需要进行git的安装
brew install git
- carthage
类似于 java 的 maven,项目依赖管理,主要是 WebDriverAgent 使用
brew install carthage

- npm appium doctor
这个是检查Appium环境的一套组件,终端执行下面命令:
sudo npm install appium-doctor -g

安装完成后,终端输入下面命令以检查appium所需要的环境是否齐全。
appium-doctor
有可能出现下面的错误✖ Error running xcrun simctl如下图所示:

解决方法:打开Xcode软件选中 Xcode>preferences>Locations里面,设置之后再重新运行检查命令即可。


这里有报错提升是由于安装是基于IOS版本的,所以android的SDK环境暂未下载。需要注意的是:网上有很多关于Face book的WebDriverAgent项目,但是这些项目已经很老且很久没有维护,而且存在很多的问题。这里推荐使用Appium Desktop自带的WebDriverAgent项目即可,打开Appium-Desktop的WebDriverAgent项目的路径
目录如下所示:
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent
将目录copy到桌面。进入WebDriverAgent项目的根目录下执行下面命令:
# 进入到WDA 根目录
cd WebDriverAgent/
# 运行初始化脚本
./Scripts/bootstrap.sh

- ideviceinstaller
brew install ideviceinstaller

- ios-deploy
-ios-deploy是一个终端安装和调试iPhone应用的是第三方开源库
npm install -g ios-deploy
查看连接的设备:
ios-deploy -c
运行WebDriverAgent
上面的环境搭建好后,打开桌面的appium-webdriveragent的WebDriverAgent.xcodeproj文件

打开后需要做的就是配置Xcode的account添加你的apple Id,可以通过下面操作进行配置如下图所示:
- 打开首选项

- 添加apple id

配置这个原因是WebDriverAgent需要配置个人证书,通过我们的apple Id即可以生成。 - 配置WebDriverAgentLib

- 配置WebDriverRunner

但是有可能会提示问题:
The app ID "com.facebook.WebDriverAgentRunner" cannot be registered
to your development team. Change your bundle identifier
to a unique string to try again.
解决方法:WebDriverAgentRunner -> Build Settings设置中,找到Packaging中的选项,将其内容修改为唯一识别的字符串。

修改完毕后就不报错了。

- iphone连接设置

选择Proudct->Test如下图所示:

注意问题:This iPhone 7 (Model 1660, 1778, 1779, 1780) is running iOS 13.1.2 (17A860), which may not be supported by this version of Xcode.如下图所示:

github下载相应版本IOS设备支持 IOS设备支持地址 如下图所示:

下载完成后将安装包解压到路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport下,如下图所示:

重启Xcode,再次运行Product->Test运行完成可能会报以下的错误:
This application’s application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed.

这是因为手机已经存在了一个WebDriverRunner,删除了app重新在运行就好,再次运行就会报以下错误。
Verify the Developer App certificate for your account is trusted on your device. Open Settings on iPhone and navigate to General -> Device Management, then select your Developer App certificate to trust it.Internal launch error: process launch failed: Security

解决方法:设置=》通用=》设备管理=》开发者应用=》验证应用 如下图所示:

点击信任即可如下图所示:

先删除之前的运行的 Product->Clean Build Folder, 再次运行Product->Test。
- 安装libimobiledevice
brew install libimobiledevice --HEAD
安装后可能报下面的这个错误:

原因是:由于系统要求的libusbmuxd 版本和所要安装的版本不一致的问题导致的,可使用下面命令进行解决。
brew uninstall --ignore-dependencies libimobiledevice
brew uninstall --ignore-dependencies usbmuxd
brew install --HEAD usbmuxd
brew unlink usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
打开控制台方法:选择view->Debug Area->Activate console打开底部控制台。然后控制台会输出IP地址和端口,例如:http://127.0.0.1:8100/status,输入在浏览器中,确认WDA是否运行成功,页面刷新出不来,再次输入下面命令开启代理:
iproxy 8100 8100
然后重新刷新浏览器如下图所示:

配置Appium-Desktop

- 配置JAVA_HOME
点击Edit Configuration配置以下环境变量,如下图所示:

- 开启Inspector Session

- 允许未授权认证

通用配置对象如下图所示:

需要注意的是其中获取iphone的uuid,在终端输入:idevice_id -l即可获取,而bundleId可以通过输入命令:ideviceinstaller -l出现如下图列表:

更多配置请参考:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
配置完成后点击Start Session的时候报端口占用的错误如下图所示:

解决方法:重启appium-desktop软件编辑修改ios的WebDriverAgent的端口号入下图所示:

设置完成后在重新Start Session如果可以看到下面的页面就证明安装已经成功。

本文详细介绍如何使用AppiumDesktop 1.15.0搭建iOS测试环境,包括安装AppiumDesktop、Xcode、JDK、brew、Node、ruby、git、carthage等工具,以及解决过程中遇到的问题。
495





