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


当前回答

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

其他回答

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

砰!它的工作原理!

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

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

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

下面的方法让我在Xcode 5.1上对64位模拟器和retina iPad Mini进行GPUImage编译而没有错误,而不需要从Valid Architectures列表中删除arm64(这违背了拥有一个64位设备来测试64位性能的目的)。

从GitHub页面https://github.com/BradLarson/GPUImage下载。zip文件夹

解压缩,并导航到“框架”文件夹。从这里,添加并复制Source文件夹到你的Xcode项目中。确保勾选了“将项目复制到目标组的文件夹”,并且勾选了“为任何添加的文件夹创建组”。这将复制通用,iOS和Mac头文件/实现文件到你的项目。

如果你不需要Mac文件,因为你正在为iOS编译,你可以在复制文件到你的项目之前删除Mac文件夹,或者简单地从Xcode中删除组。

一旦你将Source文件夹添加到你的项目中,只需使用以下命令开始使用GPUImage的类/方法:

#import "Source/GPUImage.h" 

有几件事需要指出:

If you get an error saying 'Cocoa' not found, you've added the Mac folder/headers into your iOS project - simply delete the Mac group/files from your project and the warning will vanish If you rename the Source folder (not the group in Xcode), use that name instead of "Source/GPUImage.h" in the #import instruction. So if you rename the folder to GPUImageFiles before you add to your project, use: #import "GPUImageFiles/GPUImage.h Obviously ensure arm64 is selected in the Valid Architectures list to take advantage of the A7 64-bit processor! This isn't a GPUImage.framework bundle (such as if you downloaded the framework from http://www.raywenderlich.com/60968/ios-7-blur-effects-gpuimage) so it may not the correct way to use GPUImage that Brad Larson intended, but it works for my current SpriteKit project. There's no need to link to frameworks/libraries etc - just import the header and implementation source folder as described above

希望上面的内容能有所帮助——尽管这个问题被问了很多次,但似乎在任何地方都没有明确的说明,但不要害怕,GPUImage绝对适用于arm64架构!

以下是对我有用的:

移除所有豆荚 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

你只需要从有效架构中删除arm64,并将NO设置为仅活动架构。现在只需要清洁、构建和运行。您将不会再次看到此错误。

:) KP