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


当前回答

我通过设置来解决这个问题:

ARCHS = armv7 armv7s

VALID_ARCHS = armv6 armv7 armv7s arm64

其他回答

对于项目中的每个目标,包括Pods中的每个目标,将Architectures设置为armv7 armv7s, Build Active Architecture Only设置为NO

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

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

要解决此错误:

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

以下是对我有用的:

移除所有豆荚 CD ios && pod分解 注释这一行在ios/Podfile -> use_flipper!() 重新安装所有pod arch -x86_64 pod install 运行你的应用程序:)npm运行ios

环境: 节点版本号:14.17.1 RN版本:6.0.0 操作系统:macOS BigSur m1

替换-ObjC与$(继承)在其他链接标志修复了我的问题

当morisunshine的回答指向正确的方向时,他的回答中的一个小调整解决了我的iOS8.2问题。

我通过设置来解决这个问题:

ARCHS = armv7

VALID_ARCHS = armv6 armv7 armv7s arm64

BUILD ACTIVE ARCHITECTURE ONLY= NO