我现在也有同样的问题,但还没有找到正确的答案。我得到了错误:

    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
duplicate symbol _OBJC_METACLASS_$_MoboSDK in:
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
ld: 75 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

任何帮助都是感激的。

最后,我找到了这个错误的原因,因为我添加了-ObjC到其他链接器标志。在删除这个值之后,我可以成功地构建我的项目,但我不知道为什么。有人能解释一下吗?


当前回答

在我的例子中,我将我的核心数据模型的实体命名为对象。 我定义了一个对象"Event。h"同时我有了这个实体"Event"我最终重命名了实体。

其他回答

我的问题是架构x86_64有5个重复的符号。在阅读了这篇文章和他们的回答之后,我尝试用通用的解决方案将GCC_NO_COMMON_BLOCKS = YES改为NO

但是,我没有为我工作,而是从5份拷贝变成了1份…

所以,我注意到最后一个错误,我意识到我的问题是什么,这是一个“不兼容”与这些包(我有在package.json):

rn-fetch-blob
react-native-blob-util

这个消息很清楚,我删除了rn-fetch-blob,因为我不知道为什么它在我的项目中,但是,我只是开玩笑地使用并删除它,这不是一个问题。

所以,在取出包装后,再次运行纱线,问题解决了……并且不需要改变GCC_NO_COMMON_BLOCKS

1.进入构建阶段

2.搜索文件名

3.删除重复的

->错误将自动恢复。

如果没有,试着搜索“文件”。M ",如果你看到任何#import "文件。M ",清除这条线

找到副本的最快方法是:

寻找目标 进入构建阶段 转到编译源 删除重复的文件。

架构x86_64的75个重复符号

意味着您已经加载了相同的函数两次。 当从其他链接标志中删除-ObjC后,问题消失了, 这意味着这个选项的结果是函数加载两次:

来自技术问答

这个标志使链接器加载库中的每个对象文件 它定义了一个Objective-C类或类别。而这个选项 通常会导致更大的可执行文件(由于额外的目标代码) 加载到应用程序中),它将允许成功创建 有效的包含类别的Objective-C静态库 现有的类。

https://developer.apple.com/library/content/qa/qa1490/_index.html

对我来说,在Xcode8推荐的项目设置中将“No Common Blocks”更新为YES,这导致了这个问题。