在运行 iOS 项目的单元测试时,我们遇到了下面提到的错误。我们在XCode 13.4.1和14版本中尝试了不同的iOS版本,但结果没有改变。由于此错误,无法创建 Coverage.profdata 文件,并且我们无法获取覆盖率数据。有没有人遇到过这样的错误或者有人知道如何解决它?如果您能提供帮助,我们将非常高兴。
Test Suite 'All tests' passed at 2022-10-07 11:25:19.487.
Executed 2110 tests, with 0 failures (0 unexpected) in 7.292 (10.705) seconds
LLVM Profile Error: Runtime and instrumentation version mismatch : expected 4, but get 5
无法将目录 /Users/*** /Build/Intermediates.noindex/CodeCoverage/ProfileData/7FFCA33C-01FF-46BE-923D-A1A0CCF11A16 中的原始配置文件合并到目标 /Users/*** /Build/Intermediates.noindex/CodeCoverage /ProfileData/7FFCA33C-01FF-46BE-923D-A1A0CCF11A16/Coverage.profdata:聚合工具“/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/llvm-profdata”失败,退出代码为 1 :警告:/Users/*** /Build/Intermediates.noindex/CodeCoverage/ProfileData/7FFCA33C-01FF-46BE-923D-A1A0CCF11A16/B5268FD3-2A23-4CA3-BE5F-AEFA9869C8ED-14839.profraw:无法解压缩数据(zlib ) 错误:没有配置文件可以合并
此警告/错误的常见原因是 Clang 和 LLVM 之间的版本不匹配。
clang --version
llvm-config --version
使用 Homebrew 安装与您当前的 Clang 版本匹配的 LLVM 版本。
brew install llvm@15
不要忘记更新您的环境变量:
llvm@15 仅是 keg,这意味着它没有符号链接到 /opt/homebrew,因为这是另一个版本的替代版本 公式。
如果您需要在 PATH 中首先包含 llvm@15,请运行:
echo '导出 PATH="/opt/homebrew/opt/llvm@15/bin:$PATH"' >> ~/.zshrc
为了让编译器找到 llvm@15,您可能需要设置:
导出 LDFLAGS="-L/opt/homebrew/opt/llvm@15/lib"
导出 CPPFLAGS="-I/opt/homebrew/opt/llvm@15/include"
重新加载 zsh 配置,这样就可以了。
source ~/.zshrc