Appium运行iOS自动化时遇WebDriverAgent相关问题求助
问题描述
- 核心错误:创建Appium会话失败,提示未知服务器端错误,根源为
xcodebuild失败(错误码65),无法启动WebDriverAgent(WDA),设备上无WDAs - 衍生问题:更换签名证书后,
appium_webdriveragentrunner项目反复弹出锁定提示,点击解锁无效,导致Appium无法运行 - 环境信息:
- 平台:iOS 16.4
- 设备:iPhone 14(或任意苹果设备)
- Appium版本:1.22.0(已尝试最新版)
- Xcode版本:14.2(已尝试最新版)
- 本地设备:MacBook Pro(MacOS Ventura 13.2.1)
- 会话配置:
{ "platformName": "iOS", "appium:platformVersion": "16.4", "appium:deviceName": "iPhone 14", "appium:bundleId": "com.apple.Health", "appium:udid": "4A0EEB47-98C9-435B-BB11-98E5596065A5" }
解决方案
一、修复WDA签名与启动问题(错误码65根源)
- 手动配置WebDriverAgent签名
- 定位Appium内置WDA路径:
/usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent(npm安装路径) - 用Xcode打开
WebDriverAgent.xcodeproj - 选中
WebDriverAgentRunner目标,进入Signing & Capabilities标签页:- 勾选
Automatically manage signing,选择你的开发者账号 - 真机测试需确保设备已添加至开发者账号设备列表
- 自动签名失败时,手动修改
Bundle Identifier为唯一值(例如在原有后缀添加账号标识:com.facebook.WebDriverAgentRunner.yourdevname)
- 勾选
- 定位Appium内置WDA路径:
- 预编译并安装WDA到设备
- Xcode中选择目标设备,点击Build按钮,确认WDA成功安装(设备会出现无图标WDA应用)
- 首次安装需在设备
设置 > 通用 > VPN与设备管理中信任开发者证书
- 验证WDA连接有效性
- 执行终端命令:
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=你的设备UDID' test - 输出显示
Test Succeeded则说明WDA配置正常
- 执行终端命令:
二、解决appium_webdriveragentrunner项目锁定问题
- 清理Xcode缓存与锁文件
- 关闭Xcode与Appium
- 删除WDA目录下的
xcuserdata文件夹,以及project.xcworkspace/xcuserdata文件夹 - 删除Xcode衍生数据中WDA相关文件:
~/Library/Developer/Xcode/DerivedData/WebDriverAgent-*
- 重置文件权限
- 终端执行:
sudo chown -R $USER:staff /usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent - 再执行:
chmod -R 755 /usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent
- 终端执行:
- 重新配置签名并解锁项目
- 重新用Xcode打开WDA项目,再次设置签名确保无红色警告
- 若仍弹出锁定提示,直接在Xcode中选择
File > Unlock Project,输入Mac管理员密码后保存项目
三、Appium会话配置优化
- 添加
appium:useNewWDA参数强制每次会话重新安装WDA:
{ "platformName": "iOS", "appium:platformVersion": "16.4", "appium:deviceName": "iPhone 14", "appium:bundleId": "com.apple.Health", "appium:udid": "4A0EEB47-98C9-435B-BB11-98E5596065A5", "appium:useNewWDA": true }
- 测试系统应用(如Health)时,可尝试用
sudo appium启动服务(注意权限风险)
内容的提问来源于stack exchange,提问作者Sai Brahma Mutcherla
相关产品推荐
相关产品推荐

