You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appium运行报xcodebuild错误无法启动WebDriverAgent如何解决

问题根因
  • 你当前使用的Appium 1.17内置的WebDriverAgent(WDA)版本过旧,与Xcode 12.5.1、Carthage 0.38.0的兼容性存在已知缺陷,旧版WDA的Carthage依赖配置没有适配高版本Carthage的xcframework要求,也不支持Xcode 12.5的编译规则。
  • 你编写的Capabilities配置缺少必要的自动化引擎参数,也是触发启动失败的原因之一。
修复步骤

步骤1:替换适配版本的WDA

优先推荐升级Appium到2.x正式版,新版已内置适配高版本Xcode的WDA,无需手动替换。
若需保留现有Appium 1.17版本,可单独下载适配Xcode 12.5的WebDriverAgent安装包,替换Appium安装目录下的node_modules/appium-xcuitest-driver/WebDriverAgent路径下的所有文件。

步骤2:重新编译WDA依赖

进入替换后的WDA目录,依次执行以下命令:

# 编译Carthage依赖,适配当前Carthage版本要求
carthage bootstrap --use-xcframeworks --platform iOS,tvOS --no-use-binaries
# 执行WDA官方初始化脚本
./Scripts/bootstrap.sh -d

步骤3:Xcode重新配置WDA签名

  • 用Xcode打开WebDriverAgent.xcodeproj
  • 分别为WebDriverAgentLib、WebDriverAgentRunner两个target配置你的开发者签名,确保bundle id无冲突
  • 选择你的测试模拟器/真机,运行WebDriverAgentRunner target,确认编译成功且设备上能正常启动WDA服务

步骤4:修正Capabilities配置

补充必要的启动参数,修改后的配置如下:

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("platformName", "iOS");
cap.setCapability("platformVersion", "14.5");
cap.setCapability("deviceName", "iPhone 12");
cap.setCapability(CapabilityType.BROWSER_NAME, "safari");
// 补充必要参数
cap.setCapability("automationName", "XCUITest"); // 必须指定iOS自动化引擎
cap.setCapability("useNewWDA", true); // 每次启动自动卸载旧版WDA避免冲突
cap.setCapability("wdaLaunchTimeout", 120000); // 延长WDA启动超时时间
cap.setCapability("waitForAppScript", "true");

URL url = new URL("http://127.0.0.1:4723/wd/hub");
IOSDriver driver = new IOSDriver(url, cap);

备选降级方案

如果不想替换WDA和升级Appium,可将Carthage降级到0.37.0版本,旧版Carthage不需要--use-xcframeworks参数,兼容Appium1.17自带的WDA配置:

brew uninstall carthage
brew install carthage@0.37.0

降级完成后重新执行原教程中的./Scripts/bootstrap.sh -d即可。

内容的提问来源于stack exchange,提问作者GMAIL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 05:57:02