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

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


当前回答

这个答案适用于Xcode 12.5.1,在2021年为我工作

关闭Xcode项目。 进入您的项目目录,如果您使用flutter,不要忘记在项目文件夹中获取“ios”文件。 删除[Pods, Podfile, Podfile.lock]。 运行终端。 转到项目目录。

如果你使用的是swift,你就完成了,跳转到xcode并运行应用程序,如果你使用的是flutter,则继续

把颤振清理干净 跑扑酒吧得到。 跑,扑,跑。在使用颤振运行命令之前,不要忘记运行模拟器。

祝贺一切顺利!

其他回答

我在Xcode 7.3中打开的一些遗留项目的情况是:

duplicate symbol _SomeEnumState in:

下面是两个不相关的文件。哦,然后这句话重复了几次,最后:

ld: 8 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

为我解决它的是改变枚举声明:

enum SomeEnumState {
    SomeEnumStateActive = 0,
    SomeEnumStateUsed = 1,
    SomeEnumStateHidden = 2
} SomeEnumState;

:

typedef NS_ENUM(NSUInteger, SomeEnumState) {
    SomeEnumStateActive = 0,
    SomeEnumStateUsed = 1,
    SomeEnumStateHidden = 2
};

如果有人对此有解释,请开导我。

在XCode中打开你的项目

您将看到侧边栏现在聚焦于所附的图像。

搜索你遇到问题的特定SDK或任何重复文件。

您将看到您已经添加了任何文件两次。

删除那个文件,你的问题就解决了。

注意:您必须将文件从您错误添加的位置删除。

例如

注意:只需从框架中删除FBSDKCoreKit即可

祝你好运

当我在两年前用Objective-C开发的项目中接受“推荐设置”弹出时,我就遇到了这种情况。

问题是当你接受“推荐设置”更新时,Xcode会自动更改或添加一些构建设置,包括GCC_NO_COMMON_BLOCKS = YES;。

这使得构建失败与重复的符号错误在我更新的项目。所以我在我的构建设置中将No Common Block更改为No,错误就消失了。

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

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

如果你来这里是为了一个React Native项目,那么请点击下面的链接,

Targets -> <Your-App> -> Build Settings -> Dead Code Stripping

调试时从No更改为Yes。

附注:这种方法适用于React Native项目,不确定它是否也适用于本地项目。