ios - 未定义符号:_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
下面是我的应用程序结构
- iOS 应用
- 我的自定义框架
- 视图控制器
- 我的自定义框架
解决方案
使用 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不包含位码。
推荐阅读
- android - ExoPlayer 正在播放当前录制的媒体文件
- php - 结合“openssl_encrypt”和“hash_hmac”来加密数据的最安全方法是什么?
- three.js - 使用 ThreeJs 沿贝塞尔曲线拖动对象
- sails.js - sailsJs - 从控制器传递的数据在视图中不可用
- google-sheets - 下载嵌入的谷歌表格
- amazon-web-services - aws-serverless-lambda:“内部服务器错误”
- angular - 在初始化之前使用属性“octomber”有问题
- angular - Angular Material 不释放 DOM 节点/Js 事件监听器
- swift - 雪碧一直在屏幕外移动
- python-3.x - 如何仅提取数字并打印为字符串