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


当前回答

我知道这是一个古老的分支。然而,在迁移到最新的CocoaPods版本(1.0.0)并试图重新安装所有pod后,同样的问题开始发生在我身上。我遇到了“armv64缺失符号”链接错误。 奇怪的是,我通过以下步骤解决了这个问题:

删除所有pod (pod init, 舱安装) 以相反的顺序重写podfile(而不是: 豆荚“Mixpanel年”, 豆荚“对讲机”, 我使用: 豆荚“对讲机”, 豆荚”“Mixpanel ) 圆荚体安装

颠倒podfile中依赖关系的顺序并重新构建pods解决了这个问题。

其他回答

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

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

添加“Security.framework”对我来说很管用。

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

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

你可以开始了

在某些情况下,如果您在.h文件中定义了另外一个接口,但没有实现所有这些接口,则会发生此错误。

链接器无法在.m文件中找到实现,因此您需要为每个接口在.m文件中实现它。

要解决此错误:

1.在.m文件中,提供每个接口的实现。 2.重建