iOS-Tagent上新了,iOS17的wda的部署小技巧你get了吗

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

一、前言

之前有很多同学一直在问如何在iOS17的设备上安装wda?其实我们 iOS-Tagent 已经更新兼容iOS17以上的设备啦,虽然无法直接通过AirtestIDE进行连接,但是可以先安装iOS-Tagent后,使用Airtest进行连接去跑脚本的~

二、部署步骤

2.1 WDA项目地址

我们比较推荐使用Airtest的iOS-Tagent,在iOS设备上点击/滑动效率更高,地址如下:

Airtest的iOS-Tagent:https://github.com/AirtestProject/IOS-Tagent(master分支,目前是推荐iOS17的设备使用)

如果是iOS12~16.7.1的设备,比较推荐使用 ios-16-and-below 这个tag下的wda版本:

git fetch git checkout ios-16-and-below

当然,大家也可以使用appium的wda,地址如下:

appium的webdriveragent:https://github.com/appium/WebDriverAgent(master分支)

2.2 WDA安装(iOS 17及以上)

2.2.1 xcode版本需求

需要xcode15或者以上版本(对应macOS版本为14.2.1及其以上),在安装的时候,需要注意在xcode15以上的版本除了 macOS 的 Components,其他都需要动态下载安装,否则提示 iOS 17 Simulator Not Installed

其中安装iOS 17 模拟器方式如下:

  1. 先根据官网指导下载 iOS_17_Simulator_Runtime.dmg。官网地址:https://links.jianshu.com/go?to=https%3A%2F%2Fdeveloper.apple.com%2Fdownload%2Fall%2F%3Fq%3DSimulator%2520Runtime
  2. 双击 iOS_17_Simulator_Runtime.dmg 文件,等待打开后,逐层找到 Runtimes 文件夹。
  3. 选择 Xcode 15 App,然后右击选择 显示包内容,通过这整个路径 Contents —> Developer —> Platforms —> iPhoneOS.platform —> Library —> Developer —> CoreSimulator,找到 Profiles 文件夹。
  4. 将第 2 步的 Runtimes 文件夹拷贝到第 3 步的 Profiles 文件夹中。
  5. 最后打开/重启 Xcode 15,此时模拟器已成功安装。

2.2.2 WDA安装流程

1、 检查设备是否在开发者账号中注册

  • 在Apple官方网站登录开发者账号(https://developer.apple.com)

  • 在device处查找对应设备的udid是否在列表中。若未在列表中,则代表没有在该开发者账号下注册,需要注册;若在列表中,则代表注册过了,此步骤可以跳过。

  • 设备udid查询方式:

    1. 打开 访达-选中手机-点击设备型号位置-即会切换显示

image

image

2、制作WDA

  • 准备好可以安装xcode15的mac电脑(参考macOS版本为14.2.1及其以上);

  • 下载或者通过执行下方命令,获取wda的代码到mac电脑上后解压;(代码仓库链接为:https://github.com/AirtestProject/IOS-Tagent,分支为master)
    git clone git@github.com:AirtestProject/iOS-Tagent.git

  • 用xcode 15打开下载好的iOS-Tagent项目代码,按照如下步骤配置xcode15的项目编译环境:

    1. 首先先点击一下左侧的项目名,在TARGETS中选择名为WebDriverAgentRunner的选项;

    2. 接着选择General,选择Deployment Info下的iOS下拉框内容为17.0;

    3. 然后切换Signing&Capabilities页面,如果Signing里面需要登录一下账号,就使用注册设备的开发者账号登录一下;若是已经注册了,就将Team一栏中选择与开发者账号用户名一致的账号;

    4. 再在xcode最顶部选择需要操作的设备,多注意下iOS设备上的一些文字提示,可能设备需要点击信任框,或者需要在设备的设置内打开开发者模式等。若信任框已点击或开发者模式已打开,xcode上设备状态仍然不对,可以选择重新拔插一下设备。

    5. 最后若最顶部的显示Test Completed,就代表当前设备已准备就绪,可以进行wda编译了。配置好的效果参考下面两张图:
      image
      image

    6. 开始编译wda。在编译前,建议先从终端内进入到目录~/Library/Developer/Xcode/DerivedData,将前缀为WebDriverAgen-的文件夹先删掉。完成后在mac顶部选择Product,点击Test选项,等待wda编译完成。提示Build successfully代表成功。

    7. 打开mac的终端,进入到~/Library/Developer/Xcode/DerivedData目录下,找到时间与自己编译wda成功时间符合的WebDriverAgen-开头的文件夹。接着点击进入到该目录后,再通过进入到/Build/Products/Debug-iphoneos地址下,查看是否有WebDriverAgentRunner-Runner.app,如果没有的话就需要在 xcode 里面选择 relase 模式重新编译一下。

      #跳转到Debug-iphoneos目录
      cd /Build/Products/Debug-iphoneos
      #查看目录下的文件
      ls
      
    8. 然后使用cp命令将WebDriverAgentRunner-Runner.app拷贝到名为 Payload 的文件夹下(Payload目录最好不要与xcode编译的内容创建在一起,建议在桌面或者其他专用目录内创建,不包含中文);创建文件夹的命令参考:

      mkdir Payload && cp -r path/*.app Payload
      
    9. 拷贝成功后,再进到Payload中内的目录 WebDriverAgentRunner-Runner.app/Frameworks 中把带有XC开头的文件全部删掉后,使用zip命令将整个Payload文件夹压缩:

      zip -r WDA.ipa Payload。
      
    10. 其次是下载iOS App Resigner进行重签名,下载地址为:https://dantheman827.github.io/ios-app-signer/。在使用该工具重签时,只需要最后把重签后的WDA.ipa保存成其他名字即可,如WDA-resign.ipa

    11. 最后把制作完成的wda包,安装到设备上,可以使用命令tidevice -u udid install path/wda。每个设备单独对应自己的wda,若其他设备想使用wda,可以如法炮制。

上架注意事项:

  • 编译wda包时使用了哪个开发者账号, 最后重签时候需要用同一个开发者账号重签。
  • 如果在打开Xcode后,出现run destination里面没有出现设备的话,可以检查一下是否安装更新了对应模拟器,可以点击这个Get去获取安装,安装后即可继续部署wda了
    image

三、小结

本周我们介绍了关于iOS17的wda安装方式,跟iOS17以下版本的安装方式有一些不同,通过上述方式我们可以安装好iOS-Tagent,可以正常接入Airtest等测试库进行跑测的,但是需要注意的是AirtestIDE还未兼容好iOS17的设备,暂时是没办法看到设备画面的噢~ 我们也会尽快新增该兼容的。

如果大家在使用过程中有一些新的使用方式或者遇到了问题,又或者有任何想要深入了解的知识点,欢迎在官方交流群(526033840)里告诉我们或者提交issue。


AirtestIDE下载:airtest.netease.com/
Airtest 教程官网:airtest.doc.io.netease.com/
搭建企业私有云服务:airlab.163.com/b2b

官方答疑 Q 群:526033840

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

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

相关文章

antd Select下拉项数据过多,偶现下拉面板空白

问题 如下,偶现点击选择框,下拉面板空白(数据确定已返回)解决 查看github中的issues发现其他人也有同样的问题,大概是和 virtual list 有关 https://github.com/ant-design/ant-design/issues/26116修改代码如下: <Select...其他属性virtual={false} />

Qt 窗口强制禁用系统阴影(自定义菜单)

解决方法 当只使用Qt::FramelessWindowHint时,不会显示系统阴影,因为自定义菜单一般都会添加Qt::Popup,添加Qt::Popup后系统会默认添加阴影效果。 在添加Qt::Popup后,继续添加Qt::NoDropShadowWindowHint枚举解决。最小复现代码:QDialog *dia = new QDialog();dia->set…

CJ/T188 调试工具介绍

官网下载地址:CJ/T 188 主站模拟器 功能介绍 #可用于任何厂商生产的符合 CJ/T188 标准的电能表。 支持通过串口和 TCP 连接 CJ/T188 设备。 支持 CJ/T188-2004/2018 协议。 同时与多个水表通信。 快速读取与写入数据,以表格形式展示,包含数据标识描述。 完善且人性化的界面设…

OpenHarmony4.1蓝牙芯片如何适配?触觉智能RK3568主板SBC3568演示

当打开蓝牙后没有反应时,需要排查蓝牙节点是否对应、固件是否加载成功,本文介绍开源鸿蒙OpenHarmony4.1系统下适配蓝牙的方法,触觉智能SBC3568主板演示,搭载了瑞芯微RK3568芯片,应用可覆盖边缘计算、人工智能、工业HMI、工业网关、智慧医疗、自助终端、智能零售、能源电力…

信创化浪潮下的ARM镜像构建指南

前言:在当今科技蓬勃发展的浪潮中,有一股神秘的力量如同幕后的巨擘,强力推动着信创化的进程。这股力量恰似一只无形却力大无穷的巨手,其影响范围广泛,涵盖了从操作系统、形形色色的中间件、数据库,一直到容器平台等诸多领域。 伴随着技术架构的深刻变革,docker 镜像也迎…

export、import、default、as 命令的一个综合性案例

a.js // a.js let a = 1; let b = 2; let c = 3;// export { a, b, }// 方法一 // export default c;export { a,b,c as default}// 方法二,不可export2个default可以export 多次,b.js // b.js // import { a, b, default as c } from ./a.js // console.log(a,b,c);// 等价于…

开源分析和落地方案—Sentinel篇

作者:京东物流 刘达一、Sentinel是什么? Sentinel是从阿里技术体系内诞生并由相关社区从微服务到云原生阶段持续孵化的流量治理组件,在服务熔断限流以及秒级/分钟级监控方面提供了开箱即用的解决方案,此外作为支持云原生的重要探索,还提供了GO语言实现。Sentinel目前拥有着…

基于XAML框架和跨平台项目架构设计的深入技术分析

深入探讨基于XAML的各种平台、跨平台战略以及为有效的项目架构设计所需的核心技术XAML平台和跨平台开发策略 本文基于Vicky&James 2024年10月22日在韩国Microsoft总部BMW meetup会议上的演讲内容重新整理而成。这次研讨会我们深入探讨了基于XAML的各种平台、跨平台战略以及…

MCGS_MQTT_STD新建设备变量批次导入

在阿里云物联网添加新设备,我比如我这里添加DK0111先导出标准的连接变量,文件名为 MQTT_STD标准参数.csv触摸屏MQTT_STD配置。发布和订阅主题修改导出新建的设备的连接参数打开标准的连接参数和新建项目的连接参数(.CSV文件),并将标准的连接参数里面的变量名复制到新建项目…

echarts 的使用

官网地址 https://echarts.apache.org/handbook/zh/concepts/dataset 要配合打在echarts Api进行查看,api地址如下: https://echarts.apache.org/zh/option.html#title 使用步骤一:引入echarts 1、设置dom标签的宽度和高度 2、调用echarts.init方法初始化echarts注:在vue中获…

LeetCode 2535[数组元素和与数字和的绝对差值]

LeetCode 2535[数组元素和与数字和的绝对差值]题目 链接 LeetCode 2535[数组元素和与数字和的绝对差值] 详情实例提示题解 思路 遍历容器,依次求出数字和与元素和,然后求差值: 通过 getSun 函数,求取元素的数字和 getSun 函数的实现:将其对10取余操作,获取的余数即为当前…

DearPyGui学习

1.所有DPG应用程序必须做3件事: 创建和销毁上下文 (create_context) 创建和显示视区 (create_viewport、show_viewport) 设置和启动DearPyGui (start_dearpygui) #基本顺序 dpg.create_context() dpg.create_viewport() dpg.setup_dearpygui()dpg.show_viewport() dpg.start_d…