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

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


当前回答

从其他链接标志中删除-all_load。它对我的项目有效

其他回答

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

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

对我来说,将“无通用块”从“是”更改为“否”(在目标->构建设置->Apple LLVM -代码生成下)解决了这个问题。

架构x86_64的75个重复符号

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

来自技术问答

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

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

愚蠢的一个,但要确保你没有在某个地方错误地导入了一个。m文件

以上解决方案都不适合我,我只是自己解决了。

我得到了我的核心数据模型的重复符号,我自己做的,但是 在我的.xcdatamodeld检查器中,我选择了Codegen属性的类定义,我猜这就是问题所在。然后我选择手动/无,它得到了修复。

希望这能对你有所帮助!