Appium中iOS环境搭建指南

2022-12-05 12:17:34 浏览数 (2)

前言

最近在搞iOS自动化环境基于Appium框架,Appium框架搭建iOS每当捡起来使用就各种坑,总结一下iOS自动化环境搭建问题,避免其他同学踩坑~

搭建流程

苹果开发者证书

首先需要准备好苹果开发者账号,需要打包WDA使用。

证书种类如下:

Apple开发者账号共有三种类型:个人类型的开发者账号、公司类型的开发者账号、企业类型的开发者账号。三种账号各有所长,如何选择还需要看实际的应用情况。

由其可见苹果对证书要求非常严格,必须在证书设备列表中的设备才能安装打包后的app。

1、可以使用公司苹果开发者账号,需要找开发同学加权限

2、可以使用个人免费开发者账号

由于大多数同学情况可能仅有个人免费开发者账号,下面着重介绍这种方式做自动化测试。

个人免费开发者账号

先安利一下简书上有关申请个人免费开发者账号的贴子,传送门

总结内容:

1、注册apple账号

2、xcode中的Preferences添加apple账号

3、注册的账号默认是赋予个人免费开发者权限的

4、个人免费开发者默认有效期是7天,过期需要重新签名

5、个人免费开发者的设备安装名单是3台

下图是我自己个人开发者账号

开发者账号的意义

在这里先抛砖引玉说下,为什么使用开发者账号?

1、如果是模拟器不需要开发者账号,因为打包的时候不会做app签名验证

2、打包被测app给真机安装

3、WebDriverAgent安装使用

安装ideviceinstaller

ideviceinstaller是一个命令行工具,主要用于管理iOS设备上应用程序的安装与卸载,以及查看相关信息,在appium中会使用到。

Intel芯片:

代码语言:javascript复制
brew uninstall ideviceinstaller
brew install ideviceinstaller

brew uninstall libimobiledevice

brew install --HEAD libimobiledevice

brew uninstall --ignore-dependencies libimobiledevice

Homebrew是一款自由及开放源代码的软件包管理系统,用以简化 macOS 和 linux 系统上的软件安装过程。它拥有安装、卸载、更新、查看、搜索等很多实用的功能,通过简单的一条指令,就可以实现包管理,十分方便快捷。

考虑到下载速度,建议下载前配置brew下载源地址:

代码语言:javascript复制
# 查看 brew.git 当前源
$ cd "$(brew --repo)" && git remote -v
origin    https://github.com/Homebrew/brew.git (fetch)
origin    https://github.com/Homebrew/brew.git (push)
# 查看 homebrew-core.git 当前源
$ cd "$(brew --repo homebrew/core)" && git remote -v
origin    https://github.com/Homebrew/homebrew-core.git (fetch)
origin    https://github.com/Homebrew/homebrew-core.git (push)
# 修改 brew.git 为阿里源
$ git -C "$(brew --repo)" remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
# 修改 homebrew-core.git 为阿里源
$ git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
# zsh 替换 brew bintray 镜像
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
$ source ~/.zshrc
# bash 替换 brew bintray 镜像
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile
# 刷新源
$ brew update

WDA下载和配置

WebDriverAgent(简称 WDA) 是 appium 底层和 xcuitest 通信的工具,WDA 也是 iOS 项目,所以也需要编译。

WDA下载

可以在github下载最新版本WDA。

代码语言:javascript复制
git clone https://github.com/appium/WebDriverAgent.git
WDA配置

1、环境依赖: 安装最新版本的Xcode工具,可以去appstore下载。

2、安装依赖:

代码语言:javascript复制
cd /npm/lib/node_modules/appium/node_modules/appium-webdriveragent && sh Scripts/bootstrap.sh

3、通过npm安装appium后,打开这个路径下文件

代码语言:javascript复制
/npm/lib/node_modules/appium/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj项目中有用的就是WebDriverAgentLib和WebDriverAgentRunner

4、配置WebDriverAgentLib

需要登录一个apple id的账号,可以去develop apple注册个人免费的开发者账号,可以免费调试7台手机。

选择automatically manage signing(自动管理证书) ,设置自动管理证书后xcode会根据账号证书和苹果开发者中心设置的内容,自动生成描述文件并下载到机器中使用。

选择WebDriverAgentLib的构建按钮,如果不出意外的话会在电脑上安装成功。

配置WebDriverAgentRunner,选择automatically manage signing(自动管理证书)。

修改Product Bundle Identfier,需要一个独一无二的Bundle ID,

WDA启动

设备信任 WDA 由于 iOS 安全机制,自己 build 的 app默认不信任的,所以需要在设置->通用->描述文件于设备管理中信任 WDA,否则 WDA 不能启动。

记录一些坑

appium相关

1、因为默认npm安装的目录在/user/local下,如果安装在这个目录下打开WebDriverAgent.xcodeproj文件会提示被锁

解决方式: 可以把npm安装到其他目录下,其他目录的权限会比较高

代码语言:javascript复制
可通过命令 npm config get prefix,查看npm安装路径

2、appium安装版本,注意安装的版本是1.21.0,大于这个版本可能会有一定的问题

代码语言:javascript复制
npm install -g appium@1.21.0

ideviceinstaller相关

安装 Rosetta,这是苹果开发的用于兼容x86架构软件的软件

代码语言:javascript复制
  1. /usr/sbin/softwareupdate --install-rosetta

/usr/sbin/softwareupdate --install-rosetta agree-to-license

安装 Homebrew

x86_64 和 ARM64 版本的 homebrew 的安装目录是不一样的

x86_64 安装目录:/usr/local/homebrew

ARM64 安装目录:/opt/homebrew

代码语言:javascript复制
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

ideviceinstaller安装

代码语言:javascript复制
brew uninstall ideviceinstaller

brew install ideviceinstaller

brew uninstall libimobiledevice

brew install --HEAD libimobiledevice

brew uninstall --ignore-dependencies libimobiledevice

WebDriverAgentRunner相关

1、 输入appium-doctor发现是没有安装Xcode Command Line Tools

解决方案: softwareupdate --all --install --force

2、Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 70

解决方案:升级系统,真机系统过高,Xcode无法适配

3、Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 65

解决方案:这一般意味着必要的签名未设置正确,通过手工配置WDA签名

4、WebDriverAgenti启动后崩溃

解决方案:升级系统,真机系统过高,Xcode无法适配

5、提示'RoutingHTTPServer/RoutingConnection.h' file not found

解决方案:wda 根目录下,输入 sh ./Scripts/bootstrap.sh 下载依赖

0 人点赞