每次我从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


当前回答

如果你在发布模式(或存档)构建时遇到这个问题,请查看我的这个答案:https://stackoverflow.com/a/61446892/5502121 长话短说:

在文件>项目设置中将构建系统设置为新建构建系统… 删除ios和build_ios文件夹 运行flutter create。初始化新的ios模块 运行pod安装 跑扑酒吧得到 检查你的Xcode构建配置(它应该是发布模式和通用iOS设备)

你可以开始了

其他回答

我也遇到过同样的问题,以上的方法都行不通。我不小心删除了下面目录下的文件。

文件夹位置:

~ /图书馆/开发/ Xcode / DerivedData /

我有一部iPhone 5s,但还没有收到第三方库的64位版本,我不得不使用最新的Xcode回到32位模式(在5.1之前它没有抱怨)。

我通过从有效架构列表中删除arm64,然后将仅构建活动架构设置为NO来解决这个问题。在我看来,这比上面所示的其他方式更有意义。我写这篇文章是为了防止其他人无法得到上述任何一种解决方案。

OPN [Debug]目标覆盖OTHER_LDFLAGS构建设置。这是主要问题。在添加$(继承)在其他链接器标志的新行解决了我的问题。

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

砰!它的工作原理!

如果你的架构和有效架构都是正确的,你可以检查你是否添加了$(inherited),它将在pods中生成的链接器标志添加到其他链接器标志,如下所示: