首页 > 解决方案 > 未定义符号:_OBJC_CLASS_$_FIRAnalytics

问题描述

我正在尝试在我的 iOS 应用程序中调用 Firebase Analytics,但在编译项目时出现错误。

我已经创建了一个框架,并从该框架调用 firebase 分析,但我不明白得到以下错误。

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


Showing Recent Errors Only
:-1: Undefined symbol: _OBJC_CLASS_$_FIRAnalytics

下面是我的应用程序结构

标签: iosswiftfirebaseframeworksfirebase-analytics

解决方案


使用 Carthage 添加 Firebase 时,我遇到了类似的问题。

因此,在运行命令 carthage update --platform iOS之后 ,您需要将文件从 Carthage/Build/iOS/ 复制到您的项目中实际上它只是复制了对 Firebase 文件的引用,但文件仍在 Carthage/Build/iOS/ 文件夹中

在更新 Xcode 和 Swift 之后 - 我需要更新我的依赖项 - 之后,我得到了这样一个错误

原因是更新后引入了一个额外的PromisesObjC.framework,当然,它没有包含在项目中。

因此,完全删除所有与 Firebase 相关的框架并再次添加它们 - 解决了问题。

PS并且不要忘记从Xcode中的Link Binary With Libraries Build Phase中删除Firebase.framework,以免在更新后出现另一个错误:) 错误:Firebase.framework不包含位码。


推荐阅读