首页 > 解决方案 > 在没有 Cocoapods 的情况下集成 Firebase 时出现构建编译错误 [Obj-C]

问题描述

我想在 Obj-C 中的 iOS 应用程序中集成没有 cocoapods 的 Firebase。我已经下载了包含所有 xcframeworks 和框架文件的 firebase zip 文件。我正在尝试使用我的应用程序实现 Firebase Analytics。

我浏览了 Readme.md 文件并按照步骤将 Firebase 与项目集成。

我已经添加了“Firebase Analytics”下提到的所有必需的 .xcframework 和 .framework 文件,并确保我勾选了“如果需要则复制项目”并选择了我的项目的“目标”。

在此之后,我以相同的方式添加了“Firebase.h”头文件,并且还在“构建设置->链接->其他链接器标志”下包含了“-ObjC”标签,但即使在我构建时执行所有这些步骤我的应用程序我收到以下错误:

ld: warning: Could not find or use auto-linked framework 'FBLPromises'
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_SKProductsRequest", referenced from:
      objc-class-ref in GoogleAppMeasurement(APMProductsRequest_9ec051498f83cad93a58cf3f308ab9b6.o)
  "_sqlite3_errmsg", referenced from:
      -[APMSqliteStore lastErrorMessage] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_bind_blob", referenced from:
      ___47-[APMSqliteStore bindValues:toStatement:error:]_block_invoke in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_bind_double", referenced from:
      ___47-[APMSqliteStore bindValues:toStatement:error:]_block_invoke in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_bind_text", referenced from:
      ___47-[APMSqliteStore bindValues:toStatement:error:]_block_invoke in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_bind_int64", referenced from:
      ___47-[APMSqliteStore bindValues:toStatement:error:]_block_invoke in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_column_int64", referenced from:
      -[APMSqliteStore valueAtColumn:forStatement:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_column_double", referenced from:
      -[APMSqliteStore valueAtColumn:forStatement:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_column_bytes", referenced from:
      -[APMSqliteStore valueAtColumn:forStatement:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_prepare_v2", referenced from:
      -[APMSqliteStore prepareSQL:error:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_changes", referenced from:
      -[APMSqliteStore deleteRecordsFromTableWithName:condition:parameterValues:error:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)

这是我的系统配置:

1.  Mac OS: MacOS Mojave[10.14.6]
2.  Xcode Version: 11.3.1
3.  Deployment Target: 11.3

谁能帮助我在成功运行它需要完成的配置中缺少什么?

标签: firebase

解决方案


根据您从中获得依赖项的位置,还应该在其中包含一个PromisesObjc.framework文件。您只需将此框架拖入 Xcode 的框架、库和嵌入式内容部分,它就会编译。如果你没有这个,你需要下载 FBLPromises 框架并自己嵌入。

如果您选择使用 Carthage 或 CocoaPods,它将为您收集此依赖项,但它可能在您提到的依赖项列表中。


推荐阅读