xcodebuild报错无法找到匹配tvOS真机但设备存在于可用列表
问题结论
这是Xcode 13.x系列(包含你使用的13.4.1 13F100版本)xcodebuild命令行工具的已知bug,和Appium WebDriverAgent本身逻辑无关。
该bug触发条件为:给-destination参数同时传入id、platform、name多个字段匹配tvOS真机目标时,xcodebuild内部的目标校验逻辑会出现冲突,哪怕指定设备确实存在于可用设备列表中,也会抛出「no available devices matched the request」的错误。
日志开头的两条watchOS扩展点加载失败提示是Xcode启动的通用冗余警告,和本次构建失败没有关联。
解决方法
按优先级依次尝试以下方案即可修复:
- 精简
-destination参数配置,仅保留设备UDID作为唯一匹配条件,删除冗余的platform、name字段。修改后的参数示例:
UDID是Apple设备的全局唯一标识,不需要额外叠加平台、设备名做二次筛选,去掉冗余参数后即可直接绕过xcodebuild的多参数匹配逻辑bug。-destination "id=1dafa12122994bd53425e32165086f586c91c7ba" - 如果精简参数后仍报错,先完成以下前置检查再重试构建:
- 确认tvOS真机已和Mac完成信任配对,打开Xcode的「Window > Devices and Simulators」页面,设备列表中能看到对应tvOS设备,且无「未信任」「配对失败」类报错提示
- 确认WebDriverAgentRunner_tvOS scheme的签名配置正确,使用的签名证书、描述文件已包含该tvOS真机的UDID
- 执行构建命令前完全退出Xcode应用,避免Xcode前台运行占用设备连接通道
- 若上述操作都无法解决问题,可以升级Xcode到14及以上版本,苹果在Xcode 14版本中正式修复了xcodebuild多参数匹配tvOS真机目标的逻辑错误。
内容的提问来源于stack exchange,提问作者Nick Hyland
相关产品推荐
相关产品推荐

