Firebase 可以与 Swift 框架项目一起使用吗?

2024-03-25

我采取了以下步骤:

  1. 创建一个全新的快速单视图应用程序。
  2. 添加一个表示对 Firebase 的依赖关系的 pod 文件
  3. 安装 Pod
  4. 打开生成的工作区并为模拟器构建
  5. 构建成功

然后我重复了这些步骤,除了在步骤 1 中我创建了一个全新的 swift cocoa touch 框架。现在构建失败了。

如下所示,Firebase 正在引用未定义的符号。这些符号大多是我认识的并且期望出现的符号:UIScreen、UIWebView、UIView 等。

我怀疑这一切都与 Firebase 是一个静态库这一事实有关(正如指出的那样)here https://groups.google.com/forum/#!msg/firebase-talk/ewsVc_FN8N0/47aivpDNBQAJ由 Mike McDonald 作为 Firebase 不能与 Carthage 一起使用的原因)。

我对应用程序、框架和库的差异/后果的理解是有限的。谁能帮助我理解这里发生了什么?


体系结构 x86_64 的未定义符号: “_OBJC_CLASS_$_UIScreen”,引用自: FirebaseAuth 中的 objc-class-ref(FIRAuthWebViewController_86c5ea5aedb4d33fd68b8660d74be54c.o) “_OBJC_CLASS_$_UIWebView”,引用自: FirebaseAuth 中的 objc-class-ref(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o) “_OBJC_CLASS_$_UIActivityIndi​​catorView”,引用自: FirebaseAuth 中的 objc-class-ref(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o) “_OBJC_METACLASS_$_UIView”,引用自: FirebaseAuth 中的 _OBJC_METACLASS_$_FIRAuthWebView(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o) “_CGRectZero”,引用自: -FirebaseAuth 中的[FIRAuthWebView createWebView](FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o) “_UIApplicationOpenURLOptionsAnnotationKey”,引用自: -[FIRAuthAppDelegateProxy initWithApplication:] 在 FirebaseAuth(FIRAuthAppDelegateProxy_d84ca069394368ea9e8127dbd13cc324.o) “_UIApplicationDidEnterBackgroundNotification”,引用自: ___23-[FIRAuth initWithApp:]FirebaseAuth 中的_block_invoke_2(FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o) -FirebaseAuth 中的[FIRAuth dealloc](FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o) -FirebaseCoreDiagnostics 中的 [FIRClearcutLogger init] (FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o) “_OBJC_CLASS_$_UIColor”,引用自: FirebaseAuth 中的 objc-class-ref(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o) “_OBJC_CLASS_$_UIViewController”,引用自: FirebaseAnalytics 中的 objc-class-ref(UIViewController+FIRAScreenClassName_936040e31cd4dddd6f71a52ea1701d0d.o) FirebaseAnalytics 中的 l_OBJC_$_CATEGORY_UIViewController_$_FIRAScreenClassName(UIViewController+FIRAScreenClassName_936040e31cd4dddd6f71a52ea1701d0d.o) FirebaseAuth 中的 _OBJC_CLASS_$_FIRAuthWebViewController(FIRAuthWebViewController_86c5ea5aedb4d33fd68b8660d74be54c.o) “_OBJC_CLASS_$_UIPageViewController”,引用自: FirebaseAnalytics 中的 objc-class-ref (FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o) “_UIApplicationDidFinishLaunchingNotification”,引用自: FirebaseAnalytics 中的 +[FIRAMeasurement 负载](FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o) “_OBJC_METACLASS_$_UIViewController”,引用自: FirebaseAuth 中的 _OBJC_METACLASS_$_FIRAuthWebViewController(FIRAuthWebViewController_86c5ea5aedb4d33fd68b8660d74be54c.o) “_OBJC_CLASS_$_UIView”,引用自: FirebaseAuth 中的 _OBJC_CLASS_$_FIRAuthWebView(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o) “_UIApplicationLaunchOptionsURLKey”,引用自: +[FIRAMeasurement handleAppDidFinishLaunching:] 在 FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o) “_OBJC_CLASS_$_UINavigationController”,引用自: FirebaseAnalytics 中的 objc-class-ref (FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o) FirebaseAuth 中的 objc-class-ref(FIRAuthURLPresenter_f9c1670c7b472e1f12d82d1c6f46940a.o) FirebaseAuth 中的 objc-class-ref(FIRAuthDefaultUIDelegate_57cb718a1d423e27d0d50a3bf9524d86.o) “_UIApplicationWillEnterForegroundNotification”,引用自: ___48-[FIRAMeasurement startMeasurementOnWorkerQueue]_block_invoke in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o) “_OBJC_CLASS_$_UITabBarController”,引用自: FirebaseAnalytics 中的 objc-class-ref (FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o) FirebaseAuth 中的 objc-class-ref(FIRAuthDefaultUIDelegate_57cb718a1d423e27d0d50a3bf9524d86.o) “_OBJC_CLASS_$_UIBarButtonItem”,引用自: FirebaseAuth 中的 objc-class-ref(FIRAuthWebViewController_86c5ea5aedb4d33fd68b8660d74be54c.o) “_OBJC_CLASS_$_UIDevice”,引用自: FirebaseAnalytics 中的 objc-class-ref(FIRAEnvironmentInfo_0da493a96efd1159c2c84454cf5a7f9d.o) FirebaseAnalytics 中的 objc-class-ref(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o) FirebaseAnalytics 中的 objc-class-ref(FIRAInAppPurchaseTransactionReporter_51b6624ff1330bf43a3ed7d9ba76e1ba.o) FirebaseAnalytics 中的 objc-class-ref(FIRAAEU_58e35a32128cb3aedeb97de41a9b356d.o) FirebaseAnalytics 中的 objc-class-ref(FIRAIdentity_8e9287d1fd6072066ad3b1332bc62373.o) FirebaseAuth 中的 objc-class-ref(FIRAuthKeychain_ee296104c7d22b9c7b07f84e7067440c.o) FirebaseCore 中的 objc-class-ref (FIRAppEnvironmentUtil_d91f40fc45222373d7f99c8b2ea3c83a.o) ... “_UIWindowDidResignKeyNotification”,引用自: -FirebaseAnalytics 中的[FIRAScreenViewReporter init](FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o) “_UIApplicationDidBecomeActiveNotification”,引用自: ___48-[FIRAMeasurement startMeasurementOnWorkerQueue]_block_invoke in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o) -FirebaseAnalytics 中的[FIRAScreenViewReporter init](FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o) ___23-[FIRAuth initWithApp:]FirebaseAuth 中的_block_invoke_2(FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o) -FirebaseAuth 中的[FIRAuth dealloc](FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o) “_OBJC_CLASS_$_UIWindow”,引用自: FirebaseAnalytics 中的 l_OBJC_$_CATEGORY_UIWindow_$_FIRAScreenClassName(UIWindow+FIRAScreenClassName_93645224f692c290f5d755885ec7f4c8.o) “_UIApplicationWillResignActiveNotification”,引用自: ___48-[FIRAMeasurement startMeasurementOnWorkerQueue]_block_invoke in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o) -FirebaseAnalytics 中的[FIRAScreenViewReporter init](FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o) “_UIBackgroundTaskInvalid”,引用自: -FirebaseAnalytics 中的 [FIRAMeasurement initWithDatabaseName:persistedConfig:network:scheduler:alarm:options:] (FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o) -FirebaseAnalytics 中的 [FIRAMeasurement swapBackgroundTaskWithNewTaskID:] (FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o) -FirebaseAnalytics 中的[FIRAMeasurement终止后台任务](FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o) -FirebaseCoreDiagnostics 中的 [FIRClearcutLogger init] (FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o) -FirebaseCoreDiagnostics 中的 [FIRClearcutLogger dealloc](FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o) -FirebaseCoreDiagnostics 中的 [FIRClearcutLogger sendLogsWithCompletionHandler:] (FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o) ___51-[FIRClearcutLogger sendLogsWithCompletionHandler:]FirebaseCoreDiagnostics 中的_block_invoke(FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o) ... “_OBJC_CLASS_$_UIApplication”,引用自: FirebaseAnalytics 中的 objc-class-ref (FIRAAppDelegateProxy_2421946053f1c5c031a7dceeaf4d9408.o) FirebaseAuth 中的 objc-class-ref(FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o) FirebaseAuth 中的 objc-class-ref(FIRAuthAppDelegateProxy_d84ca069394368ea9e8127dbd13cc324.o) FirebaseAuth 中的 objc-class-ref(FIRAuthDefaultUIDelegate_57cb718a1d423e27d0d50a3bf9524d86.o) FirebaseCoreDiagnostics 中的 objc-class-ref (FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o) FirebaseInstanceID 中的 objc-class-ref(FIRMessagingLog_045f628692bcbe68f0c668c89b92b24f.o) ld:未找到架构 x86_64 的符号


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase 可以与 Swift 框架项目一起使用吗? 的相关文章

随机推荐

  • 将 docker 与 RDS (Prod) 一起使用,但对本地数据库设置感到困惑 (dev)

    我正在使用 Docker 设计一个 Rails web 应用程序 出于多种原因 我想在生产环境中使用 RDS 来实现其可配置性和耐用性 而不是基于 Docker 容器的数据库 这是一个要求 我意识到我可以配置数据库 yml指向 Prod 环
  • 如何通过Prefix获取所有data-*属性

    我有一个这样的标签 a href Link a 当我点击这个链接时 我有一个这样的功能 ssd click function event var customData Code to get all the custom data in f
  • 什么会导致 php 的 strtotime 对 2099 年的日期不起作用?

    我有三台服务器 在所有三台服务器上执行以下操作 echo strtotime 2099 12 31 echo strtotime date Y m d gets me 服务器 1 php 5 3 8 64位 4102376400 13284
  • Swift:将视图从堆栈视图带到前面

    我得到了一个堆栈视图 其中包含以下视图 1 2 3 4 和 5 寻找一种方法将 Image View4 从 Stack 视图中的 view4 移至所有其他视图之上 我需要这个的原因是因为我将 Image View4 移动到 view3 中的
  • 如何在拖动过程中修复 jQuery UI 对话框的大小?

    这是一个简单的对话框 如下代码所示 每当拖动对话框时 其高度就会减小 当我设置对话框的 ressized false 时 它 的高度值甚至会改变 最后我通过在 DragStop 事件处理程序中重新更新对话框高度来修复它 我发现有人报告了类似
  • 如何确定当前 Mono 运行时的构建和安装版本?

    我想确定当前 Mono 运行时的构建和安装版本 如何在 Git 中正确调用它 dmcs version Mono C compiler version 2 9 0 0 但这绝对是不够的 XSP ASP NET 错误页面提供了更多信息 版本信
  • PIP 安装 Numpy 抛出错误“ascii 编解码器无法解码字节 0xe2”

    我在一台新构建的计算机上新安装了 Ubuntu 我刚刚使用 apt get 安装了 python pip 现在 当我尝试 pip install Numpy 和 Pandas 时 出现以下错误 我在 SO 和 Google 上的很多地方都看
  • 如何导入其他 TypeScript 文件?

    使用 vs net 的 TypeScript 插件时 如何使一个 TypeScript 文件导入其他 TypeScript 文件中声明的模块 file 1 module moo export class foo file 2 what go
  • create-react-app --template typescript — 是否可以暂时禁用类型检查?

    我正在使用 TypeScript 开发一个 create react app 它会在我的前端文件夹中自动生成一个 tsconfig include src 每次运行应用程序时 即使我删除或更改文件 有没有办法禁用 TS cra 中的类型检查
  • 如何在 C# 中检查一个日期时间是否大于另一个

    我有两个DateTime对象 StartDate and EndDate 我想确定一下StartDate是在之前EndDate 这在 C 中是如何完成的 if StartDate lt EndDate code 如果您只想要日期而不是时间
  • 继承、组合和默认方法

    人们通常承认 通过继承来扩展接口的实现并不是最佳实践 而组合 例如 从头开始再次实现接口 更易于维护 这是有效的 因为接口契约强制用户实现所有所需的功能 然而 在 java 8 中 默认方法提供了一些可以 手动 覆盖的默认行为 考虑下面的例
  • C# - 将“对象”参数转换为该对象的类型?

    C Hi all 我将一个对象传递给一个方法 我想将该对象转换为它的特定类 以便我可以执行它自己的特定方法 我怎样才能做到这一点 Move new Cat Move new Pigeon public void Move object ob
  • 当满足条件时如何退出迭代循环?

    我想迭代一个函数g with iterate 当我运行代码时 循环无限运行 当条件满足时是否有可能跳出循环 就像是if g x gt 100 then stop My code f x iterate g x g x 2 x 只要翻转条件
  • 代码契约:确保未经验证并需要未经验证

    我不确定我是否在这里做错了什么或者是否需要修复 我有一个自定义的 Dictionary 包装类 这是必要的代码片段 public int Count get Contract Ensures Contract Result
  • 最后一页底部流程正文中的最后一个块

    我怎样才能拥有最后的fo block in fo flow正文与最后一页的底部对齐吗 我并不是指每个页面上的页脚部分 没关系 但我希望流程主体中的最后一个块位于最后一页的底部 流体的内容多种多样 我不知道最后一个块部分的高度是多少 有可能以
  • 如何使表格中的文本向左溢出?

    我有一张固定布局的桌子 溢出时 单元格的内容应从左侧而不是右侧剪切 也就是说 如果 TD 的宽度小于文本的宽度 则下面的单元格应显示 67890 而不是 12345 这至少需要在 IE7 中运行 有没有办法在 css 中做到这一点而不需要任
  • Android 中的内存缓存 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试将一个视频存储在内存缓存中
  • 通用图像加载器:内存不足错误

    我正在使用universal image loader 1 6 2 jar 最新的 我正在尝试使用此库下载并缓存该图像 我有 47 张图像要从服务器下载 总共 5 22 Mb 我的最大图像尺寸为 720X480 大小约为 143kb 一切顺
  • 如何使用 webpack 访问全局对象(窗口)?

    我正在尝试使用 JavaScript 将 ActionScript 与 JavaScript 连接起来ExternalInterface和网络包 ExternalInterface只能挑起 call 在全局对象 window 我如何获得 w
  • Firebase 可以与 Swift 框架项目一起使用吗?

    我采取了以下步骤 创建一个全新的快速单视图应用程序 添加一个表示对 Firebase 的依赖关系的 pod 文件 安装 Pod 打开生成的工作区并为模拟器构建 构建成功 然后我重复了这些步骤 除了在步骤 1 中我创建了一个全新的 swift