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

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


当前回答

确保您没有意外导入.m文件,您可能想要在项目窗口中删除派生数据,然后重新构建和运行。

其他回答

上面提到的答案都没有帮助,因为我在pods和本地存储的框架中有类似的错误,看起来像这样,

duplicate symbol '_OBJC_METACLASS_$_EZAudioDevice' in:
    /Users/(yourUserName)/Desktop/Source Code/(yourProjectName)/Pods/AudioKit/iOS/AudioKit.framework/AudioKit(EZAudioDevice.o)
    /Users/(yourUserName)/Desktop/Source Code/(yourProjectName)/ChirpSDK.framework/ChirpSDK(EZAudioDevice.o)

所以修复是定位/Users/(yourUserName)/Desktop/Source Code/(yourProjectName)/Pods目录在项目中,你会发现这两个文件,即,

豆荚- (yourProjectName) xcconfig调试。 豆荚- (yourProjectName) xcconfig发行。

在这两个文件中,你需要删除OTHER_LDFLAGS = $(inherited)下的-ObjC标志,删除这个的理由与这里已经提到的相同

这个答案很好地解释了为什么会出现这个问题:

Xcode c++::架构x86_64的重复符号

在我看来,你不需要关闭任何标志或更改Xcode设置,重新阅读你的代码,并解决问题。改变环境只会减轻炎症而不是病因。

我对这个错误的问题是Podfile。 我正在使用Firebase,他们的一个豆荚就是问题所在。

我从Podfile中删除了所有的firebase pod 通过在终端中运行此代码删除了派生数据。 rm -rf ~/Library/Developer/Xcode/DerivedData/ 然后一个接一个地重新安装我需要的吊舱。

如果在头文件中定义了一些常用函数,请将它们更改为内联函数。

确保您没有意外导入.m文件,您可能想要在项目窗口中删除派生数据,然后重新构建和运行。