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

Bash调用xcc时为--exclude-packages传多值报错如何解决

问题根因

你遇到的报错是XcodeCoverageConverter使用的Swift ArgumentParser库对多值选项的默认解析规则限制:如果不为数组类型选项显式指定无上限数量属性,单条--exclude-packages参数仅会读取紧随其后的1个值,剩下不带--前缀的内容都会被识别为位置参数<output-formats>的内容,所以第二个包名会被当成输出格式解析触发报错。


修复方案1:直接执行场景(显式重复参数名)

为每个需要排除的包名前都加上--exclude-packages前缀即可,命令写法如下:

xcc generate coverage.json TargetDirectory cobertura-xml --exclude-packages Tests --exclude-packages AnotherPackageName --verbose

修复方案2:Bash脚本场景(批量拼接参数)

如果需要排除的包数量较多,可以在Bash中循环拼接参数,避免重复书写:

jsonPath="coverage.json"
coberturaTargetPath="Cobertura"
excludePackages=(Tests AnotherPackageName)

# 批量拼接排除参数
excludeArgs=()
for pkg in "${excludePackages[@]}"; do
  excludeArgs+=(--exclude-packages "$pkg")
done

# 执行命令(注意变量外层加双引号,避免路径含空格时解析异常)
xcc generate "$jsonPath" \
   "$coberturaTargetPath" cobertura-xml \
   "${excludeArgs[@]}" \
   --verbose

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:15:05