未定义的符号 ___llvm_profile_runtime

Und*_*Fox 25 xcode code-coverage preview swiftui

从使用 SwiftUI 的 Xcode 11 开始,在单元测试中启用代码覆盖率和预览工作看起来非常困难/没有办法。

这就是我所做的:

  1. 在 Xcode 中选择 target -> Edit scheme
  2. 选择测试选项卡,在选项选项卡下,选择为某些目标收集覆盖率(仅选择主要目标)
  3. 转到 SwiftUI 文件并预览停止工作并出现以下错误。请注意,您仍然可以很好地使用构建选项。

这是错误:

linker command failed with exit code 1 (use -v to see invocation)
    
failedToBuildDylib: ld: warning: directory not found for option '-F/Applications/Xcode.app/Contents/SharedFrameworks-iphonesimulator'
Undefined symbols for architecture x86_64:
  "___llvm_profile_runtime", referenced from:
      ___llvm_profile_runtime_user in Pods_RadioDemo(Pods-RadioDemo-dummy.o)
     (maybe you meant: ___llvm_profile_runtime_user)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

为了摆脱这个问题,我可以关闭代码覆盖率。显然,这不是我要找的。请告诉我如何在预览和代码覆盖率工作的情况下达到完美的世界。

只是有点引用是在这里。Timmmm 好人对一个非常相似的问题有一些见解。

Akk*_*Lab 46

我也被这个问题困扰。要解决此问题,您可能需要添加-fprofile-instr-generateBuild Settings > Linking > Other Linker Flags.

此标志是用于覆盖率输出的选项。在我的环境中使用此设置后,我成功地在启用覆盖范围的同时启用了预览。

  • 错误内容表明无法调用覆盖运行时库。因此,我们考虑添加一个标志来启用覆盖。换句话说,该标志用于链接覆盖运行时库。 (4认同)
  • 你是怎么找到这面旗帜的? (3认同)

Wal*_*ers 14

我在 Objective-C 项目中遇到了类似的 ___llvm_profile_runtime_user 错误。

这是因为我的应用程序使用的框架之一是在打开代码覆盖率的情况下构建的。(它是单独构建的,带有“调试”配置。它不是由当前项目/工作区构建的。)

我通过在应用程序的方案中打开相同的设置让 Xcode 高兴:编辑方案 -> 测试 -> 选项 -> 代码覆盖率

  • 就我而言,在当前目标上启用代码覆盖率后,此错误消失了。谢谢你!:-) (2认同)