我现在也有同样的问题,但还没有找到正确的答案。我得到了错误:
/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到其他链接器标志。在删除这个值之后,我可以成功地构建我的项目,但我不知道为什么。有人能解释一下吗?
我发现公认的答案涉及到这个问题,但没有帮助我解决它,希望这个答案将有助于解决这个非常令人沮丧的问题。
duplicate symbol _OBJC_IVAR_$_BLoginViewController._hud in:
17 duplicate symbols for architecture x86_64
意味着你已经加载了相同的函数两次。当从其他链接器标志中删除-ObjC后,问题消失了,这意味着该选项导致函数加载两次:
通俗地说,这意味着我们的项目中有两个名称完全相同的文件。也许你正在将一个项目合并到另一个项目中?看看上面的错误“重复符号”错误,看看哪个文件夹是重复的,在我的情况下,它是BLoginViewController。
例如,在下图中,你可以看到我有两个BImageViewControllers,对我来说,这是导致问题的原因。
只要我删除了一个,问题就消失了:)
我在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
};
如果有人对此有解释,请开导我。
今天,我得到了同样的错误。错误的关键字是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
上面提到的答案都没有帮助,因为我在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 12.5.1,在2021年为我工作
关闭Xcode项目。
进入您的项目目录,如果您使用flutter,不要忘记在项目文件夹中获取“ios”文件。
删除[Pods, Podfile, Podfile.lock]。
运行终端。
转到项目目录。
如果你使用的是swift,你就完成了,跳转到xcode并运行应用程序,如果你使用的是flutter,则继续
把颤振清理干净
跑扑酒吧得到。
跑,扑,跑。在使用颤振运行命令之前,不要忘记运行模拟器。
祝贺一切顺利!
我的问题是架构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