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

多iOS模拟器并行时WebDriverAgent报xcodebuild退出码75/SIGTERM如何解决

多iOS设备并行执行自动化脚本WebDriverAgent报错解决方案

s already started! [WebDriverAgent] xcodebuild exited with code '75' and signal 'null'
[WebDriverAgent] xcodebuild exited with code 'null' and signal 'SIGTERM'

问题根因

该报错仅在多台iOS设备并行时触发,本质是多进程调用xcodebuild启动WebDriverAgent(WDA)时产生资源冲突:默认配置下所有WDA进程复用同一服务端口、Xcode派生数据缓存目录,单台执行或跨Android并行时仅会启动1个WDA进程,因此不会触发冲突。

具体修复步骤

  • 为每台iOS设备分配独立的WDA服务端口
    为每个并行执行的iOS节点单独配置wdaLocalPort参数,端口可从8100~8200区间选择不重复的值。如果使用Appium作为测试驱动,需同步为每个节点配置不重复的mjpegServerPort参数,避免截图流服务端口占用。
  • 配置独立的Xcode派生数据目录
    给每个并行任务单独指定derivedDataPath参数,路径可按设备UDID命名,比如./wda_build/[设备UDID]/,执行前自动创建对应目录,避免多进程读写默认全局DerivedData目录产生冲突。
  • 每个设备启动独立WDA实例
    配置参数useNewWDA=true,禁用全局WDA复用机制,每个iOS设备的执行进程单独触发WDA的编译、启动流程,执行完成后自动销毁对应WDA进程,避免残留进程影响下一次执行。
  • Cucumber并行执行适配
    若使用cucumber-parallel插件实现并行,可在cucumber.yml或运行命令中,将设备UDID、WDA端口、派生数据路径作为环境变量传入每个执行线程,示例运行命令如下:
    cucumber --parallel 4 --format pretty DEVICE_UDID=$当前设备UDID WDA_PORT=$分配端口 DERIVED_DATA_PATH=$对应目录路径
  • 执行前添加全局清理逻辑
    每次并行任务启动前,执行清理命令杀掉所有残留的WDA相关进程:
    pkill -9 xcodebuild
    pkill -9 WebDriverAgent
    避免上一次执行的残留进程导致端口或文件占用。

真机并行额外配置

如果需要实现多台iOS真机并行,除上述配置外,需要为每台真机的WDA设置唯一的Bundle ID,避免证书签名冲突导致启动失败。

内容的提问来源于stack exchange,提问作者Haseeb Ali Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:36:04