简介

tidevice 是阿里的内部的一个小组用来做 iOS 自动化用的工具。最近终于开源了出来。
所以这篇文章就来介绍一下这款工具。

项目地址 https://github.com/alibaba/taobao-iphone-device,请先点个 Star ⭐ ,然后回来在看。

它有什么功能呢?

这个工具是纯 Python 写成的,所以也是跨平台的。也就是可以在能跑起来 Python 的 Windows、Linux、Mac 上运行。

其中网上最难找的应该是这个如何不依赖 xcode 启动 WebDriverAgent,这个工具就可以做到,原理的话可以翻源码。因为不依赖 Xcodebuild,所以就算你只有 Windows 或者 Linux 也能跑起来 iOS 自动化。

截止到发稿日期 2021/01/27,支持 iOS 手机的范围是 9.0-14.0

安装

该工具是用 Python 写的,依赖 Python3.6+
安装方法

pip3 install -U tidevice

截图、App 启动等一些常规操作

# 查看所有连接上的设备
$ tidevice list
List of apple devices attached
1234567892d8372eb752f413280722cdcc200954 iPhoneSE

# 截图
tidevice screenshot screenshot.jpg

# 启动苹果设置
tidevice launch com.apple.Preferences

# 查看已安装的第三方应用
tidevice applist

启动 WebDriverAgent 演示

本来想录个视频的,但是 Windows 电脑还要去借,太麻烦了。就不录视频了。反正你知道 Windows 能跑就行。

第一步用数据线将 iPhone 手机连接到 PC 上,另外还需要手机上已经有WebDriverAgent这个 App 了。这个可以通过 xcode 编译源码安装,也可以用开发者证书重签名的 WebDriverAgent.ipa 安装到手机。

WebDriverAgent.ipa 在项目的 tests/testdata 目录下可以找到我之前打包好的。

启动就是一个命令 tidevice xctest 或者指定执行设备和 bundleId tidevice -u $UDID xctest -B $BUNDLE_ID

需要运行运行自动化的话,可以直接用 facebook-wda

或者用 iproxy 8100 8100 将服务映射出来用 Appium 或其他自动化框架连接也可以。

我觉的这种方式的优点

  1. 启动速度快(基本都在 1s 内)
  2. CPU、Memory 占用率低,可以实现 1 台电脑挂载 10+ iPhone 设备的需求
  3. 不限操作系统。Linux,Windows 也可以。不过还是有条件上 Mac,也就贵一点而已。
  4. 最重要的就是这种方式稳定性高。

其他功能

tidevice applist
tidevice reboot
tidevice screenshot
tidevice info
tidevice install https://.....ipa

更多功能参考
tidevice -h

其他

我怕你忘记点 ⭐,这里再贴一遍 https://github.com/alibaba/taobao-iphone-device

PS: 本小组正在招人,欢迎投递简历并留言。https://testerhome.com/topics/23010


↙↙↙阅读原文可查看相关链接,并与作者交流