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

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


当前回答

对于React Native,解决方案是简单地删除所有的库:Target > Build Phases > Link Binary with Library。

我真的不知道原因,但我认为React Native已经安装了包,创建副本。

其他回答

我试着遵循这些步骤,现在对我有用了。

打开Xcode > Pods >目标支持文件> Pods-{TARGET-NAME} 找到“OTHER_LDFLAGS”,只删除这两个文件中的“-ObjC”: 豆荚-{目标名}.release。xcconfig & Pods-{TARGET-NAME}.debug.xcconfig 转到项目主目标>构建设置>其他链接器标志: 确保值中没有“-ObjC” 我删除了ios中的build/ build文件夹,并再次运行ios。现在起作用了。

我希望它一定会对你有所帮助

我得到相同的错误3重复符号的架构x86_64

在我的情况下,我从同一项目的另一个文件复制了代码。代码的a.m.文件到B.m和编译后,我得到了一个错误提到。我已经解决了通过改变全局变量的名称的错误。

这个错误出现在我的情况下,因为在两个文件中相同的声明全局变量。

对于其他有这个问题的人,我在这些答案中都没有看到我的解决方案。

在手动处理了.pbxproj合并冲突后(尽管很糟糕),在.pbxproj中有对单个类文件的重复引用。从项目>构建阶段>编译源代码删除这些为我修复了一切。

希望这能帮到你。

当我添加一个pod存储库时,我得到了同样的错误

pod 'SWRevealViewController'

对于已经添加的源代码(SWRevealViewController)从gitHub。因此,该错误将通过删除源代码或pod存储库来修复。

案例2:

第二次,当我在.h文件中声明一个常量时,出现了这个错误。

NSString * const SomeConstant  = @"SomeValue";
@interface AppDelegate : UIResponder <UIApplicationDelegate> {
...
...

今天,我得到了同样的错误。错误的关键字是duplicate。我通过:

1. Remove the duplicate file at Build Phases-->Compile Sources
2. If you can not remove it at Build Phases, you need find the file at your project and remove the reference by DELETE :

3. Add the file to your project again
4. Add the file's .m to your Build Phases-->Compile Sources again
5. Build your project, the error will disappear