每次我从CocoaPods导入文件时,我都会得到一个Apple Mach-O链接器错误。

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_FBSession", referenced from: someFile
ld: symbol(s) not found for architecture arm64

我有大约12个这样的耳机,用于我使用的各种pod。

我试图使用XCode 5为iPhone 5S构建。

我一直在尝试各种解决方案这里所以,但还没有得到任何工作。

我如何解决这个苹果Mach-O链接错误?


刚刚发现了另一个可能很有趣的警告,我希望这能让我找到解决方案:

Ignoring file ~/Library/Developer/Xcode/DerivedData/SomeApp/Build/Products/Debug-iphoneos/libPods.a, 

~/Library/Developer/Xcode/DerivedData/someApp/Build/Products/Debug-iphoneos/libPods.a


当前回答

调用pod update,然后从pod文件中删除pod 'ARCore',并再次调用pod install。然后将pod 'ARCore'添加到pod文件中,并再次调用pod install

其他回答

没有解决方案修复这个错误在我的情况下(Xcode 9),与TesseractOCRiOS。经过几个小时的反复试验,我想出了一个很好的解决办法。我只是删除Podfile中的'pod 'TesseractOCRiOS', '~> 4.0.0',运行pod install。然后,将pod 'TesseractOCRiOS', '~> 4.0.0'添加回Podfile,并再次运行pod install。

砰!它的工作原理!

如果架构和链接器设置看起来不错,请检查h文件。我的问题是同样的错误,但我已经重新构造了h文件,我删除了一个extern语句。其他m文件正在使用该变量,导致链接器错误。

这个解决方案对我来说是唯一有效的: 进入CordovaLib设置,将arm64添加到Valid Architectures。

在我使用dlib在IOS的情况下,我需要删除“继承”从构建设置/预处理器宏。

如果使用c++编写的.framework/.a文件,在调用c++代码时,其文件需要更改为.mm文件。

我浪费了半天时间……