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


当前回答

这个链接错误消息表明定义它的源文件没有被标记为应用程序目标的一部分。找到源文件,并使用右边的file属性检查器来检查应用程序目标的目标成员条目。

解决方案: 选择文件-> openFile Inspector ->参见目标成员->检查如果未选中目标您的运行目标

其他回答

我的问题是,我已经有一些Facebook sdk在我的项目(FBSDKLoginKit和FBSDKCoreKit)。

我只需要一个SDK (FBSDKShareKit)并导入它,从而给出了“未定义的arm64符号架构”。

由于FBSDKShareKit依赖于更新版本的FBSDKCoreKit,通过更新其他框架,一切都重新工作了。

我在升级到Xcode 5.1后也遇到了同样的问题,并通过将架构设置为armv7 armv7s来解决它

如果你正在使用m1 (arm64),你有问题,你可以在x86模式下运行:

右键点击xcode,点击获取信息按钮 勾选“使用罗塞塔”选项打开

这将是一个缓慢但有效的过程。

我遇到了相同/类似的问题,实现AVPictureInPictureController,问题是我没有在我的项目中链接AVKit框架。

错误信息是:

Undefined symbols for architecture armv7:
   "_OBJC_CLASS_$_AVPictureInPictureController", referenced from:
       objc-class-ref in yourTarget.a(yourObject.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决方案:

进入你的项目 选择目标 然后,转到构建阶段 用库打开二进制链接 最后,只需添加+ AVKit框架/任何其他框架。

希望这能帮助其他遇到类似问题的人。

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

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

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