iOS 设备接入
本文将介绍 iOS 设备接入 Sonic 的准备工作。
接入通用配置
- 将设备使用 USB 连接电脑
- 点击【信任】电脑
- 将 WebDriverAgent 构建到设备中(首次连接需要,可参考下方构建教学)
- 网页调试相关设置:设置 → Safari浏览器 → 高级 → 打开【网页检查器】
- 关闭手机锁屏密码:设置 → 面容ID与密码 → 关闭密码(不关闭可能出现远程使用时sonic一直显示连接中且手机阻塞在输入密码页)
iOS16 特殊配置
iOS16 需要手动开启开发者选项。
- 打开设置,进入【隐私与安全性】。
- 点击【开发者模式】。
- 如果出现提示重启弹窗,点击重启。
- 如果启动后询问是否打开开发者模式,点击打开。
iOS17及以上版本的处理
注意
该功能需要v2.7.1及以上版本
目前Sonic还未兼容Windows平台和Linux平台的iOS17及以上版本设备接入,因此iOS17及以上机器必须
接入到部署在MacOS的Agent上。
- Agent需要安装
iproxy
和ideviceinstaller
shell
brew install usbmuxd
brew install ideviceinstaller
- 在Agent的
config/application-sonic-agent.yml
中,将wda-xcode-project-path
配置为WebDriverAgent.xcodeproj路径
完成后,确认能构建WebDriverAgent到设备中进行Test:
shell
xcodebuild -project 你上面填的路径 -scheme WebDriverAgentRunner -destination 'id=设备的序列号' test
至此准备完毕。
构建 WebDriverAgent 到设备中
构建 wda 到你的 iOS 设备中。
注意
构建成功后即可脱离 Mac,在 Windows 或 Linux 的 Agent 上也可以使用 iOS 设备。准备个人免费证书(7 天过期),最好还是使用开发者账户。
准备工作:Mac、Xcode、开发者账户。
- 拉取 Sonic组织的WebDriverAgent 项目。(该项目与appium/WebDriverAgent一致)
bash
git clone https://github.com/SonicCloudOrg/sonic-ios-wda.git
- 修改 WebDriverAgentLib 和 WebDriverAgentRunner 中的 Signing Team 为自己的开发者账号。
- 修改 WebDriverAgentRunner 中 Build Settings 中的 Product Bundle Identifier 为自己的自定义包名(最好保留 WebDriverAgentRunner 结尾)
注意
部分 Xcode 版本在修改包名后会重置签名的 Team,需重新更改第二步中的签名
- Scheme 选择 WebDriverAgentRunner 作为构建目标,右侧选择目标设备。然后选择 Product -> Build 即可构建。如果想测试 WebDriverAgent 是否能正常运行,也可以选择 Product -> Test 查看运行日志。
注意
如果构建到手机上有错误,可能是因为没有信任证书引起的。请连接网络后,在设置--通用--描述文件与管理里面信任即可。
- 构建完成!可以前往 Agent 端 config 文件夹的 yml 文件中配置对应的自定义 BundleId 即可。
注意
接入完成后,后续可以脱离 Mac 来使用 iOS(Windows 需要安装 iTunes),如果证书过期,需要重新使用 Mac 安装证书
构建 ipa 文件
如果只想构建一次,然后打包成 wda.ipa 共享给其他设备,可以参考这个方式。
手机 udId 必须在开发者账号下。
bash
$ 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
$ sib app install -p WDA.ipa
TIP
关于 sib 的使用,可前往周边生态。
常见问题(Q&A)
Q1: 打包 wda 后启动失败。
A1: 请检查 yml 中配置的 bundleId 是否一致、设备是否信任了证书、设备是否信任了电脑。
Q2: 使用后没有出现画面,但是按键操作正常。
A1: 解决方案可参考 这个帖子。
TIP
更多疑问可前往 👉社区👈 交流