重复符号“_lprofMergeValueProfData”

duplicate symbol '_lprofMergeValueProfData'

我正在开发一个具有依赖项“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)

我尝试用导入“Dependency1”的其他 3 个框架执行此操作,但其中只有 1 个可以无误地获取代码覆盖率数据。

有些人建议检查我是否在某处导入了“.m”而不是“.h”,但我认为情况并非如此(我检查了所有文件)

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

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

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

  3. 在您的 Xcode 项目中,转到您的目标并在构建设置中搜索未导出的符号文件。添加包含要排除的列表的文件名 (hidden_list)。 excluded_symbols

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