【iOS自动化】Xcode配置WebDriverAgent

WebDriverAgent 是 iOS 端自动化测试的工具,这里记录下 MacOS 环境 Xcode 如何配置 WebDriverAgent。

【重要】环境准备

‼️ 注意:Xcode 版本需要支持对应的 iOS 版本,而 Xcode 版本又依赖 MacOS 版本;在开始部署前,先确定你的Xcode版本是否支持你设备的iOS版本

  • 查看版本对应关系:https://developer.apple.com/support/xcode/

📌 如果你的Xcode版本不支持对应iOS版本,解决方案如下:

1、Xcode版本小于15,并且 iOS 版本小于 17:

  • 查看当前版本xcode支持iOS设备版本:ls /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • 下载对应iOS版本压缩包并解压后放到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 目录下,下载地址:https://github.com/filsv/iOSDeviceSupport

2、Xcode版本大于15已经不使用DeviceSupport的方式了:

  • 查看当前 iOS 设备版本需要的 Xcode 版本,以及对应Xcode版本所需要的MacOS版本(版本对应关系:https://developer.apple.com/support/xcode/)
  • 如果当前 MacOS 版本支持对应 Xcode 版本,则直接升级 Xcode 版本即可,如果不支持,则需要先升级 MacOS 版本
  • 升级 Xcode 到支持对应 iOS 设备的版本
如何升级到指定版本 Xcode?

如果当前 MacOS 版本不支持升级最新成Xcode,但是更低版本的 Xcode 能够满足需求的情况下,可以下载指定版本的Xcode进行安装:

  • https://xcodereleases.com/?scope=release
如何升级指定版本 MacOS?

如果不想升级到最新版本的 MacOS,则可以选择对应的版本进行下载升级:

  • https://support.apple.com/zh-cn/102662

我这里使用的环境版本信息如下,仅供参考:

  • MacOS:13.7.3
  • Xcode:15.2
  • iOS:17.2

部署 WebDriverAgent

拉取 Appium 维护的 Wda 代码即可(facebook的19年已经停止维护了):

git clone https://github.com/appium/WebDriverAgent

最新的只需要拉取代码即可,不许在执行脚本操作。

Xcode 配置

1、打开 WebDriverAgent 工程

进入WebDriverAgent根目录,使用 Xcode 打开 WebDriverAgent.xcodeproj 文件

2、Xcode 登录 Apple 开发者账号

选择 Settings
在这里插入图片描述
点击下面+号添加账户(这里用个人 Apple 账号也可以)
在这里插入图片描述

3、配置证书

选中WebDriverAgentLib,开启自动管理签名
在这里插入图片描述
选中WebDriverAgentRunner,像WebDriverAgentLib一样设置证书
在这里插入图片描述
如果是个人免费版的证书,还需要修改下WebDriverAgent的BundleID,随便加后缀,不要跟别人重复就好
在这里插入图片描述

4、运行测试

Scheme 选择 WebDriverAgentRunner
在这里插入图片描述
运行测试 Test
在这里插入图片描述

5、iOS 信任证书

个人免费证书会弹一下提示,需要在iOS设备设置下:

  • 进入手机 「设置-> 通用-> VPN与设备管理」 找到对应APP信任下即可
  • 设置完成后重新运行下测试即可成功

在这里插入图片描述

6、运行成功

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/69538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang:精通sync/atomic 包的Atomic 操作

在本指南中,我们将探索sync/atomic包的细节,展示如何编写更安全、更高效的并发代码。无论你是经验丰富的Gopher还是刚刚起步,你都会发现有价值的见解来提升Go编程技能。让我们一起开启原子运算的力量吧! 理解Go中的原子操作 在快…

Mp4视频播放机无法播放视频-批量修改视频分辨率(帧宽、帧高)

背景 家人有一台夏新多功能 视频播放器(夏新多功能 视频播放器),用来播放广场舞。下载了一些广场舞视频, 只有部分视频可以播放,其他视频均无法播放,判断应该不是帧速率和数据速率的限制, 分析可能是播放器不支持帧高度大于720的视频。由于视频文件较多,需要借助视频编…

【Python】字典

个人主页:GUIQU. 归属专栏:Python 文章目录 1. 字典概述2. 字典的创建与初始化2.1 直接使用花括号创建2.2 使用 dict() 构造函数创建2.3 字典推导式创建 3. 字典的基本操作3.1 访问字典中的值3.2 修改和添加键值对3.3 删除键值对 4. 字典的遍历4.1 遍历键…

STM32系统架构介绍

STM32系统架构 1. CM3/4系统架构2. CM3/4系统架构-----存储器组织结构2.1 寄存器地址映射(特殊的存储器)2.2 寄存器地址计算2.3 寄存器的封装 3. CM3/4系统架构-----时钟系统 STM32 和 ARM 以及 ARM7是什么关系? ARM 是一个做芯片标准的公司&#xff0c…

鸿蒙NEXT开发-发布三方库

开发一个三方库 如需发布一个 har 包,必须包含 oh-package.json5、README.md,CHANGELOG.md 和 LICENSE 四个文件,若文件缺失,会导致上架至中心仓失败。 HAR(Harmony Archive)是静态共享包,可以…

CSS 实现下拉菜单效果实例解析

1. 引言 在 Web 开发过程中,下拉菜单是一种常见且十分实用的交互组件。很多前端教程都提供过简单的下拉菜单示例,本文将以一个简洁的实例为出发点,从 HTML 结构、CSS 样式以及整体交互逻辑三个层面进行详细解析,帮助大家理解纯 C…

半导体制造工艺讲解

目录 一、半导体制造工艺的概述 二、单晶硅片的制造 1.单晶硅的制造 2.晶棒的切割、研磨 3.晶棒的切片、倒角和打磨 4.晶圆的检测和清洗 三、晶圆制造 1.氧化与涂胶 2.光刻与显影 3.刻蚀与脱胶 4.掺杂与退火 5.薄膜沉积、金属化和晶圆减薄 6.MOSFET在晶圆表面的形…

微信小程序如何使用decimal计算金额

第三方库地址:GitHub - MikeMcl/decimal.js: An arbitrary-precision Decimal type for JavaScript 之前都是api接口走后端计算,偶尔发现这个库也不错,计算简单,目前发现比较准确 上代码 导入js import Decimal from ../../uti…

安卓开发,底部导航栏

1、创建导航栏图标 使用系统自带的矢量图库文件,鼠标右键点击res->New->Vector Asset 修改 Name , Clip art 和 Color 再创建一个 同样的方法再创建四个按钮 2、添加百分比布局依赖 app\build.gradle.kts 中添加百分比布局依赖,并点击Sync Now …

前后端服务配置

1、安装虚拟机(VirtualBox或者vmware),在虚拟机上配置centos(选择你需要的Linux版本),配置如nginx服务器等 1.1 VMware 下载路径Sign In注册下载 1.2 VirtualBox 下载路径https://www.virtualbox.org/wiki/Downloads 2、配置服…

亲身经历!!解决fatal: unable to access ‘https://~.git/‘: Failed to connect to github.com ····

最近学着用GitBash,发现上来gitclone 就报错。由于我是纯小白,所以试了比较多次,终于成功了。 首先我试了一下关闭梯子,发现还是不行。上网搜,说是代理问题,可我也不知道啥叫代理,反正大概意思就是电脑连通…

TCP传输层协议

TCP 全称为 "传输控制协议(Transmission Control Protocol"). 人如其名, 要对数据的传 输进行一个详细的控制。 对于TCP的学习主要就是要知道TCP协议报头之中各个字段的作用 除了数据之外总共报头加起来是20个字节 16位源端口号与目的端口号 这是最容易理解的两…

正则引入store中的modules文件

正则引入store中的modules文件 // index.js import { createStore } from vuex;const modulesFiles require.context(./modules, true, /\.ts|js$/); const modules modulesFiles.keys().reduce((modules1, modulePath) > {const moduleName modulePath.replace(/^\.\/(.…

127,【3】 buuctf [NPUCTF2020]ReadlezPHP

进入靶场 吓我一跳 查看源码 点击 审计 <?php// 定义一个名为 HelloPhp 的类&#xff0c;该类可能用于执行与日期格式化相关的操作 class HelloPhp {// 定义一个公共属性 $a&#xff0c;用于存储日期格式化的模板public $a;// 定义一个公共属性 $b&#xff0c;用于存储…

如何在浏览器中搭建开源Web操作系统Puter的本地与远程环境

文章目录 前言1.关于Puter2.本地部署Puter3.Puter简单使用4. 安装内网穿透5.配置puter公网地址6. 配置固定公网地址 前言 嘿&#xff0c;小伙伴们&#xff01;是不是每次开机都要像打地鼠一样不停地点击各种网盘和应用程序的登录按钮&#xff0c;感觉超级麻烦&#xff1f;更让…

产品详情页中 品牌官网详情 对应后端的字段是 detail

文章目录 1、在这个Vue代码中&#xff0c;品牌官网详情 对应后端的字段是 detail2、品牌官网详情 功能相关的代码片段3、export const productSave (data: any) >4、ProductController5、ProductDto 类6、ProductApiService 1、在这个Vue代码中&#xff0c;品牌官网详情 对…

51单片机(国信长天)矩阵键盘的基本操作

在CT107D单片机综合训练平台上&#xff0c;首先将J5处的跳帽接到1~2引脚&#xff0c;使按键S4~S19按键组成4X4的矩阵键盘。在扫描按键的过程中&#xff0c;发现有按键触发信号后(不做去抖动)&#xff0c;待按键松开后&#xff0c;在数码管的第一位显示相应的数字:从左至右&…

VSCode + Continue 实现AI编程助理

安装VS Code 直接官网下载安装&#xff0c;反正是免费的。 安装VS插件Continue 直接在插件市场中搜索&#xff0c; Continue&#xff0c;第一个就是了。 配置Chat Model 点击Add Chat model后进行选择&#xff1a; 选择Ollama后&#xff0c;需要点击下面的config file : 由于…

机器学习之数学基础:线性代数、微积分、概率论 | PyTorch 深度学习实战

前一篇文章&#xff0c;使用线性回归模型逼近目标模型 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于 强化学习必修课&#xff1a;引领人工智能新时代【梗直哥瞿炜】 线性代数、微积分、概率论 …

BS架构(笔记整理)

楔子.基本概念 1.在网络架构中&#xff1a; 服务器通常是集中式计算资源&#xff0c;负责处理和存储数据&#xff1b;客户机是请求这些服务的终端设备&#xff0c;可能是个人电脑或移动设备&#xff1b;浏览器则是客户机上用来与服务器交互的工具&#xff0c;负责展示网页内容…