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

使用xcodebuild运行Swift包测试报错需在具体设备上运行如何解决?

问题解决方案

错误根因

你仅通过-sdk参数指定了构建SDK,没有明确指定测试运行的具体目标模拟器设备,xcodebuild会默认使用「Any iOS Simulator Device」虚拟目标,而该目标不支持运行测试用例,必须绑定真实存在的模拟器实例才能执行测试。

解决步骤

  • 第一步:查询本地可用的iOS模拟器列表
    执行命令:
    xcrun simctl list devices available
    命令执行后会输出所有可用的模拟器,格式如下示例:
== Devices ==
-- iOS 14.5 --
    iPhone 12 (A123B456-C789-0D12-E345-F67890GHI123) (Available)
    iPhone 13 (B123C456-D789-0E12-F345-G67890HIJ123) (Available)

你可以选择对应的模拟器名称+系统版本,或者直接复制模拟器的UUID字符串使用。

  • 第二步:调整xcodebuild命令,新增-destination参数
    有两种指定方式,二选一即可:
  1. 按模拟器名称+系统版本指定:
xcodebuild -scheme "package-name-Package" -configuration "Debug" -destination 'platform=iOS Simulator,name=iPhone 12,OS=14.5' -arch x86_64 test

注意把name和OS的取值替换成你第一步查询到的实际可用的模拟器信息。
2. 按模拟器UUID指定(更精准,不会出现重名匹配错误):

xcodebuild -scheme "package-name-Package" -configuration "Debug" -destination 'id=A123B456-C789-0D12-E345-F67890GHI123' -arch x86_64 test

把id后面的字符串替换成第一步查到的对应模拟器UUID即可。

额外说明

  • 加了-destination参数后不需要再额外指定-sdk参数,xcodebuild会自动根据目标设备匹配对应SDK,避免参数冲突。
  • 如果是在Apple Silicon架构的Mac上运行测试,需要运行x86架构模拟器时保留-arch x86_64参数,运行原生Arm架构模拟器可以将参数改为-arch arm64或者直接删除该参数让xcodebuild自动适配。
  • 如果需要跑真机测试,才需要指定-sdk iphoneos,同时需要补充开发者签名、Team ID等相关配置参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 10:15:05