要在Mac上成功安装和配置WebDriverAgent(WDA)以进行iOS自动化测试,请遵循以下详细步骤。整个过程涉及环境准备、依赖安装、项目配置、签名设置和运行验证。
一、环境准备与依赖安装
- 系统与工具要求:
◦ macOS:建议10.14及以上版本。
◦ Xcode:最新稳定版本,并确保其版本支持您iOS设备的系统版本。您可以在苹果官方支持页面(https://developer.apple.com/support/xcode/)查看版本对应关系。
◦ Homebrew:Mac包管理器,用于安装其他依赖。
- 安装必要依赖:
打开终端(Terminal),执行以下命令:
安装Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
使用Homebrew安装依赖
brew install libimobiledevice
brew install carthage
brew install node # 如果后续需要结合Appium使用1,5
二、获取与配置WebDriverAgent项目
- 克隆项目:
建议使用Appium维护的版本(更新更稳定)。
git clone https://github.com/appium/WebDriverAgent.git
cd WebDriverAgent
- 安装Carthage依赖:
在项目根目录执行引导脚本。
./Scripts/bootstrap.sh
注意:如果脚本执行报错,可能需要安装特定版本的Node.js和npm。
三、Xcode项目配置与签名(关键步骤)
这是解决您之前遇到的"通信失败"问题的核心环节。
- 打开项目:
在Finder中双击 WebDriverAgent.xcodeproj 文件,用Xcode打开。
- 添加Apple ID账户:
在Xcode顶部菜单栏,点击 Xcode -> Settings... -> Accounts,点击左下角"+"号添加您的Apple ID(个人账号即可)。
- 配置签名(针对两个Target):
在Xcode项目导航器左侧,点击项目名称,在中间面板的"TARGETS"下,分别对 WebDriverAgentLib 和 WebDriverAgentRunner 进行如下操作:
◦ 选中 WebDriverAgentLib。
◦ 在右侧选择 "Signing & Capabilities" 标签页。
◦ 勾选 "Automatically manage signing"。
◦ 在 "Team" 下拉框中,选择您刚添加的Apple ID(例如"Personal Team")。
◦ 重复以上步骤,为 WebDriverAgentRunner 进行同样配置。
- 修改Bundle Identifier(仅限个人免费账号):
如果您使用的是免费Apple ID,Xcode会自动在原始Bundle ID后添加后缀(如 com.facebook.WebDriverAgentRunnerRhystest)。如果自动添加的后缀仍导致冲突,您可以手动将其修改得更独特,例如加上日期戳。
四、构建、运行与验证
- 选择运行目标:
◦ 在Xcode顶部工具栏的Scheme选择器中,确保选中 WebDriverAgentRunner。
◦ 在设备选择器中,选择您已通过USB连接的iOS真机(或模拟器)。
- 运行测试:
点击Xcode顶部菜单栏的 Product -> Test(或按快捷键 Cmd+U)。
◦ 首次运行可能会提示输入Mac登录密码以访问钥匙串,请允许。
◦ 如果使用个人免费证书,手机会提示"未受信任的开发者"。请到iPhone的 设置 -> 通用 -> VPN与设备管理(或描述文件与设备管理) 中,信任您的Apple ID证书。
- 验证安装:
运行成功后,查看Xcode控制台输出。您会看到类似 ServerURLHere->http://<设备IP>:8100 的日志。
◦ 在Mac的浏览器中访问 http://<设备IP>:8100/status。
◦ 如果页面返回一个包含"value"等字段的JSON数据,则表明WDA服务已成功启动。
五、常见问题与注意事项
• 签名失败:如您之前遇到的问题,多由免费账号限制引起。确保为两个Target都正确设置了签名团队,并在手机上信任了开发者证书。终极解决方案是加入付费的Apple Developer Program。
• 端口无法访问:部分国产iPhone可能无法直接通过IP访问。可以使用 tidevice 工具进行端口转发:tidevice relay 8100 8100。
• 版本兼容性:务必确保Xcode版本支持您iOS设备的系统版本,否则可能无法识别设备。
按照以上步骤操作,您应该能在Mac上成功搭建
WebDriverAgent环境。
如果在遇到错误
-
Your team has no devices...: 这是主因。即使手机已连接,Xcode的自动签名流程可能没有成功在后台将其注册到您的账号下。
-
No profiles for 'com.facebook...' were found: 这是上一个问题导致的结果。由于没有设备,Xcode无法生成有效的配置文件。
则需要为整个WebDriverAgent项目中的三个Target都修改Bundle ID,并确保它们完全一致。只改一个地方是无效的。