前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Appium中iOS环境搭建指南

Appium中iOS环境搭建指南

作者头像
测试加
发布2022-12-05 12:17:34
1.4K0
发布2022-12-05 12:17:34
举报

前言

最近在搞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 下载依赖

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试加 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 搭建流程
    • 苹果开发者证书
      • 证书种类如下:
      • 个人免费开发者账号
    • 开发者账号的意义
      • 安装ideviceinstaller
        • WDA下载和配置
          • WDA下载
          • WDA配置
          • WDA启动
      • 记录一些坑
        • appium相关
          • ideviceinstaller相关
            • WebDriverAgentRunner相关
            相关产品与服务
            访问管理
            访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档