ios - 重复符号 '_lprofMergeValueProfData'

标签 ios objective-c cocoapods xctest

我正在开发一个带有依赖项“Dependency1”的框架“CurrentFramework”,它可以很好地运行示例项目、构建框架和测试。
但是当我想收集框架的代码覆盖率时,会发生以下错误:

duplicate symbol '_lprofMergeValueProfData' in:
    /directory/Documents/CurrentFrameworkProject/Pods/Dependency1/Dependency1.framework/Dependency1
    /directory/Library/Developer/Xcode/DerivedData/CurrentFramework-hhnbyyjwzomjgjasdrewahvxlmyq/Build/Products/Debug-iphonesimulator/CurrentFramework.framework/CurrentFramework
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我尝试使用其他 3 个导入“Dependency1”的框架来执行此操作,其中只有 1 个可以无错误地获取代码覆盖率数据。
有些人建议检查我是否在某处导入了“.m”而不是“.h”,但我认为不是这样(我检查了所有文件)

最佳答案

这可能不是最好的答案,但这是我已经完成的一些解决方法。

  • 创建一个文件来存储排除的符号 (_lprofMergeValueProfData)。在本例中,我将其命名为 hidden_​​list。
    hidden_list
  • 将文件放在项目根目录中。
  • 在您的 Xcode 项目中,转到您的 Target 并在 Build Settings 中搜索 Unexported Symbols File。添加包含要排除的列表的文件名(hidden_​​list)。
    excluded_symbols
  • 再次运行您的项目,错误应该消失了。
  • 关于ios - 重复符号 '_lprofMergeValueProfData',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62649784/

    相关文章:

    ios - 如何遍历结构的静态常量?

    ios - 在界面生成器中使用现有的自定义 UIView

    ios - 使用容器 View Controller 访问导航栏

    objective-c - Swift 中的方法名称

    ios - 使用 TwitterKit 在框架模块内包含非模块化 header

    iOS 在 cocoapods 上发布私有(private)代码框架

    ios - 在 swift 中为 firebase 自定义登录

    ios - 调用 addChildViewController 或不调用 addChildViewController

    c++ - Objective-C++ 不能在枚举 block 中使用 vector push_back

    xcode - 如何使用 GitHub Actions 安装私有(private) Pod?