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

    /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到其他链接器标志。在删除这个值之后,我可以成功地构建我的项目,但我不知道为什么。有人能解释一下吗?


当前回答

当我在头文件中而不是在.cpp文件中使用范围解析操作符实现类方法时,发生了这个错误。

PS:我在Macbook Yosemite上用c++编程。

其他回答

我的问题是架构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)在finder中,删除整个Pods文件夹和Podfile。锁文件 2)关闭xcode项目 3)在终端运行pod install 4)打开xcode项目,运行clean build命令

在那之后为我工作。

寻找目标 选择生成设置 搜索“No Common Blocks”,选择为“No”。

这对我很有效

另一个会导致此错误的愚蠢错误是重复文件。我不小心复制了一些文件两次。首先我去了目标->构建阶段->编译源代码。在那里,我注意到列表上的一些文件两次以及它们的位置。

我也有同样的问题。 在Xcode 7.2的路径Project Target > Build Setting > No Common Blocks中,我将其更改为No。