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

fishfish-yu · 2024年11月08日 · 2545 次阅读

此文章来源于项目官方公众号:“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. 打开 访达 - 选中手机 - 点击设备型号位置 - 即会切换显示

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 编译了。配置好的效果参考下面两张图:

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 了

三、小结

本周我们介绍了关于 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

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册