我们一直在使用以下代码在我们的公关管道多年,它的工作。
xcodebuild -sdk iphoneos -configuration dev -workspace MyProject.xcworkspace -scheme MyProject_Mu -destination 'platform=iOS Simulator,name=iPhone 8' test -derivedDataPath DerivedData CODE_SIGNING_ALLOWED=NO
通常,上述代码在文件夹下生成.profraw
和.profdata
:DerivedData/Build/ProfileData/41E444A5-D124-4222-82C2-EB33DCDBF2FC/
直到最近,我们的托管代理才从XCode 12
升级到XCode 13
,上面的代码只生成.profraw
,并以下面的错误结束
warning: DerivedData/Build/ProfileData/41E444A5-D124-4222-82C2-EB33DCDBF2FC/B8590BD3-CF44-4308-95CF-20FBFFEF3568-24496.profraw: Failed to uncompress data (zlib)
error: No profiles could be merged.
我们甚至尝试运行以下代码,希望这样可以解决问题:
xcrun llvm-profdata merge DerivedData/Build/ProfileData/*/*.profraw -output generated.profdata
但它不起作用。我们得到同样的错误
warning: DerivedData/Build/ProfileData/41E444A5-D124-4222-82C2-EB33DCDBF2FC/B8590BD3-CF44-4308-95CF-20FBFFEF3568-24496.profraw: Failed to uncompress data (zlib)
error: No profiles could be merged.
现在我们的PR管道被卡住了,我们不能工作,因为需要这个脚本来生成单元测试覆盖率数据。
1条答案
按热度按时间nhhxz33t1#
我通过将
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS
设置为NO解决了该问题。由于某种原因,LLVM分析检测添加的额外代码干扰了代码覆盖率。我不确定这是否是预期的行为;我将提交一个错误,并跟进,如果我有任何进一步的信息。