首页 > 其他分享 >IOS自动化—将WDA打包ipa批量安装驱动

IOS自动化—将WDA打包ipa批量安装驱动

时间:2023-08-03 19:32:47浏览次数:42  
标签:WDA ipa Xcode IOS WebDriverAgent 报错 app xcode



文章目录

  • 前言
  • 必要条件
  • 为何做这个
  • 一、下载WebDriverAgent
  • 二、进行打包WDA.ipa
  • 1、指定xcode运行路径
  • 报错解决一:path does not exist
  • 报错解决二:not contain an Xcode project, workspace or package.
  • 2、按步骤执行命令
  • 第一步
  • 第二步
  • 第三步
  • 三、安装ipa文件
  • 下载tidevice
  • 安装
  • 四、启动WebDriverAgent服务
  • 总结


前面一直没更新技术文章,确实是我懒,但我保证,我会更懒!

只要没人催更,我可以一直偷偷写成私人笔记存本地而不发表 ~

前言

微信:

CSDN:

如果Mac电脑没有配置好Xcode相关环境,可以参考以上文章。

必要条件

  • Mac电脑,OS版本在12.4及以上(低于这个版本无法安装Xcode14,装不了Xcode14就打包不了IOS16的驱动)
  • IOS设备手机,IOS版本在11.0及以上
  • Xcode14.0及以上
  • 公司的IOS开发者账号(如果是个人账号,只能用七天就要重新打包,这就失去了打包的意义了)

为何做这个

在之前写的IOS自动化教程中,我都是采用的Mac电脑连接ios设备,使用Xcode一个个进行打包,非常麻烦。

就这样忍受了不知道多久,一次偶然的机会,我在sonic官网看到了可以将WebDriverAgent打包成ipa包,直接进行安装,这不就是当年我一直想要做的事情却因为查不到资料而放弃了的事情吗。

由于官网写的比较精简,只有一些命令,于是我打算完善和整合一下详细的操作步骤。

这样做了之后,只需要拿着ipa包直接进行安装,然后启动WebDriverAgent服务就可以了。

注:ipa包类似于Android端的apk安装包,ipa是ios的安装包后缀格式。

一、下载WebDriverAgent

appium提供的:https://github.com/appium/WebDriverAgent

Airtest提供的:https://github.com/AirtestProject/iOS-Tagent

直接通过git clone下载到Mac电脑本地即可。

二、进行打包WDA.ipa

检查当前是否满足前面的必要条件,没满足请先满足,否则后面无法进行或有各种各样的报错!

  • 确保Mac电脑已经安装了Xcode14.0及以上版本(此处是为了兼容现在最新的ios16设备)
  • 确认ios设备和Mac电脑已经连接(插上数据线就行,弹出信任按钮点击信任即可)
  • 确保Mac电脑有足够的内存,Xcode很大!

1、指定xcode运行路径

启动终端,运行xcodebuild进行检查配置 , 如果没报错可以进行第2步,有报错跟着我一起解决

(base) QA-IPv6:Downloads avidly$ xcodebuild
xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist
Use `sudo xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools, or use `xcode-select --install` to install the standalone command line developer tools.
See `man xcode-select` for more details.

报错解决一:path does not exist

这里报错的错误日志提醒也非常明显,大意就是说没有找到你的Xcode.app这个路径下的/Contents/Developer这些文件,所以我们要指定一下Xcode.app的路径,这个路径就是你下载Xcode解压之后所放的位置,由于我当初下载的是Xcode-beta14.0版本,所以我就指定的是Xcode-beta.app,可以按需更改这个文件的名字。

并且在日志中给出了解决办法:

sudo xcode-select --switch path/to/Xcode.app

用这个命令进行指定你所要使用的Xcode。

实操指定路径命令

sudo xcode-select --switch /Users/avidly/Downloads/Xcode-beta.app

实际运行效果

IOS自动化—将WDA打包ipa批量安装驱动_Mac

  • 执行的时候要输入密码,这个密码是你Mac电脑的密码
(base) QA-IPv6:Downloads avidly$ sudo xcode-select --switch /Users/avidly/Downloads/Xcode-beta.app
Password:
(base) QA-IPv6:Downloads avidly$

报错解决二:not contain an Xcode project, workspace or package.

除了第一个报错,我们还可能遇到这个报错

xcodebuild: error: The directory /Users/avidly/Downloads does not contain an Xcode project, workspace or package.

这个报错,如果没有从事过xcode开发或者对xcode不是很熟悉的话,可能不是很清楚他的含义。

这里作为一个门外汉,通过自己的实践经验做个说明:

这个报错表示,当前所运行的文件目录下,没有找到xcode类型的文件项目。

解决方案:

  • 1、打开Xcode,参考我之前的文章,打开对应的WebDriverAgent文件,选好各项配置,填好开发者账号(公司级别)
  • 2、打开Xcode,File -> Save As Workspace…
  • 3、保存名字可以任意取,我保存的是xiaozaiTest.xcworkspace
  • 4、将该文件放到和xcode.app同一目录下。

IOS自动化—将WDA打包ipa批量安装驱动_ide_02

IOS自动化—将WDA打包ipa批量安装驱动_xcode_03

2、按步骤执行命令

第一步

  • 执行如下命令前,需要cd到第一步中我们保存的xcode项目文件目录下
$ xcodebuild build-for-testing -scheme WebDriverAgentRunner -sdk iphoneos -configuration Release -derivedDataPath /tmp/derivedDataPath

实操截图展示

IOS自动化—将WDA打包ipa批量安装驱动_Mac_04

这里需要等一小会,直到出现TEST BUILD SUCCEEDED,就表示成功了。

IOS自动化—将WDA打包ipa批量安装驱动_Mac_05

第二步

执行如下命令

$ cd /tmp/derivedDataPath
$ cd Build/Products/Release-iphoneos
$ mkdir Payload && mv *.app Payload

IOS自动化—将WDA打包ipa批量安装驱动_ios_06

第三步

执行如下命令

$ zip -r WDA.ipa Payload

IOS自动化—将WDA打包ipa批量安装驱动_Mac_07

执行完毕后,你在当前目录下可以看到有个WDA.ipa文件,这就代表我们成功了。

这个时候我们就可以脱离Mac,直接使用windows操作了。

之后也不需要再来xcode进行构建WebDriverAgent了,直接安装这个ipa包即可。

IOS自动化—将WDA打包ipa批量安装驱动_xcode_08

三、安装ipa文件

前面我们把ipa文件构建出来了,接下来就是需要进行安装了。

安装ipa文件可以通过iTools,也可以通过其他第三方进行安装,比如我比较推荐的是tidevice,它可以使用python编写批量安装,批量启动的脚本,这些我均已在公司落地。

下载tidevice

直接通过pip进行下载,这里我给大家加个速,我自己配置了全局加速,相关文章可以查看我之前写的pip设置全局镜像源

tidevice的相关命令在之前也有写过,可以进行翻阅

$ pip install tidevice -i https://pypi.tuna.tsinghua.edu.cn/simple

安装

只连接了一台ios设备可以通过如下命令安装

$ tidevice install WDA.ipa

连接了多台设备可以通过如下命令指定设备安装

$ tidevice --udid 设备的UDID号 install WDA.ipa

IOS自动化—将WDA打包ipa批量安装驱动_ios_09

四、启动WebDriverAgent服务

这个我之前有写过批量启动的文章:

公众号 : python非阻塞模式批量启动ios设备的WebDriverAgent

博客:python批量启动ios设备的WebDriverAgent

这里给一个示列:

tidevice --udid 49687f67a4c70fbd027e19b4a5e40218acdc06e4 xctest -B com.facebook.WebDriverAgentRunnerxzz.xctrunner -e USB_PORT:8118
  • –udid : 表示指定设备运行
  • 49687f67a4c70fbd027e19b4a5e40218acdc06e4 : ios设备的udid
  • com.facebook.WebDriverAgentRunnerxzz:xcode打包构建时写的包名
  • USB_PORT:8118 通过8118端口进行连接

IOS自动化—将WDA打包ipa批量安装驱动_ide_10

看到WebDriverAgent start successfully则表示WebDriverAgent服务启动成功了!

总结

主要命令如下:

$ xcodebuild build-for-testing -scheme WebDriverAgentRunner -sdk iphoneos -configuration Release -derivedDataPath /tmp/derivedDataPath
$ cd /tmp/derivedDataPath
$ cd Build/Products/Release-iphoneos
$ mkdir Payload && mv *.app Payload
$ zip -r WDA.ipa Payload
$ tidevice install WDA.ipa

如果有不明白的地方,欢迎付费咨询,啊哈哈哈哈哈哈 ~


标签:WDA,ipa,Xcode,IOS,WebDriverAgent,报错,app,xcode
From: https://blog.51cto.com/u_15800928/6952316

相关文章

  • ios自动化-Xcode、WebDriverAgent环境部署
    环境准备:Mac电脑一台(更新到最新的macOS,此文档使用的为macOS12.3.1,Intel芯片)Xcode最新稳定版(此文档使用的为13.4.1)IOS设备(此文档使用了10.3.3-15.1均有,且都安装WebDriverAgent成功)保证自己电脑有大于25G的可用内存空间,Xcode很大!Xcode下载https://developer.apple.com/xcode/r......
  • iOS企业签名掉签,iOS企业签名掉签了怎么办?
    不能上架到AppStore的iOS应用,几乎每一个开发者的选择都是通过iOS签名这种内测渠道来完成APP的上架任务,最常用的就是企业签名、超级签名以及TF上架,其中最受欢迎的当属于企业签名了。不过企业签名会出现掉签的现象,那么企业签名掉签了该如何处理呢?今天小驰就来分享下关于签名掉签的......
  • iOS float类型不精确
    如floatx=0.01999999999用nslog输出是0.02例:要求对2个值进行0.02的超差判定  第一次:   if abs(FieldByName(x[0]).AsFloat -FieldByName(x[1]).AsFloat) >0.02 then     showmessage('超差');          问题出现:>号......
  • 最新的iOS应用上架App Store详细流程解析
    最新的iOS应用上架AppStore详细流程解析2023已经过了2/3的时间,由于现在苹果签名市场的价格不断的上升,现在很多的开发商一直在想着如何进行上架一些自己的产品,下面小编来给大家梳理一下上架苹果市场的流程: 2020最新整理iOSapp上架app详细教程 上架iOS需要一个付费688的开......
  • 最新的iOS应用上架App Store详细流程解析
    最新的iOS应用上架AppStore详细流程解析2023已经过了2/3的时间,由于现在苹果签名市场的价格不断的上升,现在很多的开发商一直在想着如何进行上架一些自己的产品,下面小编来给大家梳理一下上架苹果市场的流程: 2020最新整理iOSapp上架app详细教程 上架iOS需要一个付费688的开......
  • 封装的axios请求
    axios实例常用配置letrequest=axios.create({baseURL:'http://localhost:8080',//请求的域名,基本地址timeout:5000,//请求的超时时长,单位毫秒url:'/data.json',//请求的路径method:'get,post,put,patch,delete',//请求方法headers:{token:''//比如to......
  • vue中使用axios发送请求时在header中设置请求头发现请求发送两次
    问题:vueaxios跨域请求,在RequestHeaders加Authorization传递Token时,发现统一请求触发了两次,第一次是RequestMethod:OPTIONS请求。原因:跨域请求时,浏览器会首先使用OPTIONS方法发起一个预请求,判断接口是否能够正常通讯。如果通讯异常,则不会发送真正的请求,如果测试通讯正常,则开......
  • 宏基笔记本BIOS密码
    1、重启后马上按shift键今天高级设置/或者按F2进BIOS2宏碁bios默认密码8位是需要通过您自己的电脑查看的哦,每台电脑的密码都不一样的,具体的查询方法如下:1、开机启动的过程按F2键,进入输入BIOS密码的界面,输入三次错误密码,2、选择第一个EnterUnlockPassword。3、记录Key后面的8个......
  • 盘点一对一源码iOS系统维持平台稳定功能(一):弹性扩缩容
    在移动互联网快速发展的时代,直播成为了一个火爆的行业,并成功进入到Android、iOS、鸿蒙系统中,人们只需具备网络与能下载直播平台的设备便可使用到一对一直播源码平台,所以几乎全世界的人们都成为了平台的用户,这就使得一对一直播源码平台的用户人数的庞大,但毕竟一对一直播源码平台是一......
  • 盘点一对一直播源码iOS系统维持平台稳定功能(一):弹性扩缩容
    在移动互联网快速发展的时代,直播成为了一个火爆的行业,并成功进入到Android、iOS、鸿蒙系统中,人们只需具备网络与能下载直播平台的设备便可使用到一对一直播源码平台,所以几乎全世界的人们都成为了平台的用户,这就使得一对一直播源码平台的用户人数的庞大,但毕竟一对一直播源码平台是......