【问题标题】:duplicate symbol '_lprofMergeValueProfData'重复符号“_lprofMergeValueProfData”
【发布时间】:2020-10-20 07:18:26
【问题描述】:

我正在开发一个带有依赖项“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”,但我认为不是这样(我检查了所有文件)

【问题讨论】:

    标签: ios objective-c cocoapods xctest


    【解决方案1】:

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

    1. 创建一个文件来存储排除符号 (_lprofMergeValueProfData)。在本例中,我将其命名为 hidden_​​list。 hidden_list

    2. 将文件放在项目根目录下。

    3. 在您的 Xcode 项目中,转到您的 Target 并在 Build Settings 中搜索 Unexported Symbols File。添加包含要排除的列表的文件名(hidden_​​list)。 excluded_symbols

    4. 再次运行你的项目,错误应该消失了。

    【讨论】:

      猜你喜欢
      • 2016-02-03
      • 2018-12-12
      • 1970-01-01
      • 2015-07-08
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      相关资源
      最近更新 更多