【问题标题】:Firestore is failed to build with Flutter for iOSFirestore 无法使用 Flutter for iOS 构建
【发布时间】:2018-10-12 00:37:11
【问题描述】:

我想将 Firestore 添加到 Flutter 应用程序,但在 iOS 上运行它时遇到问题。 我已经将此行添加到 pubspec.yaml

cloud_firestore:^0.6.3

Flutter 已更新。 Flutter 医生说我有 v0.3.1。

为 iOS 模拟器编译应用程序时出现此构建错误

 Xcode's output: ↳     /
Users/*********/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.2.3/ios/Classes/FirebaseCorePlugin.m:7:9:
fatal error: 'Firebase/Firebase.h' file not found
    #import <Firebase/Firebase.h>
        ^~~~~~~~~~~~~~~~~~~~~


 1 error generated

我还运行 pod update 以确保 cocoapods 没有问题。

更新

经过另一项研究,我发现从 iOS 文件夹中的 Podfile 中删除 #use_frameworks! 让我们进行项目编译。但是如果不能删除怎么办呢?

【问题讨论】:

  • 只是为了确认一下,您是否运行过flutter packages get 和/或flutter packages upgrade?
  • @rmtmckenzie 是的,我做到了

标签: firebase dart google-cloud-firestore flutter flutter-dependencies


【解决方案1】:

对此的更新为我提供了足够的信息来诊断(希望如此)。 Flutter 不太擅长支持#use_frameworks & swift,但最近(2018 年 4 月中旬)was fixed。但是,在撰写本文时,它可能尚未进入测试版通道。

之前设置#use_frameworks 时发生的情况是它没有将所有内容链接到正确的库中,并且cocoapods 错误阻止它查找某些文件。最新版本的所有内容都使用动态链接,但在 podfile 中有 static_framework=true 用于具有静态依赖项的依赖项,以便它们实际需要的所有内容都链接到正确的位置。

这是在主分支/通道上修复和测试的,但现在应该已经进入开发分支/通道了。

以下是确保您的环境支持修复的步骤,来自other github issue:

  • 确保已安装 Cocoapods 1.5.0(pod --version 应该 说 >= 1.5.0)
  • 将您对 firebase_xxx、google_sign_in 或 cloud_firestore 插件的所有依赖项更改为最新版本 (查找涉及 Cocoapods 1.5.0 的变更日志条目)
  • 将您的ios/Podfile 更改为 Flutter master 分支上的最新版本 (https://github.com/flutter/flutter/tree/master/packages/flutter_tools/templates/cocoapods)
  • 删除 ios/Podfile.lock 和 ios/Pods
  • 使用flutter channel &lt;branch&gt;切换到Flutter master(或dev)分支
  • flutter clean ; flutter run

【讨论】:

  • 我刚刚尝试过 - 我真的希望它会起作用,但我仍然收到fatal error: 'firebase_core/FirebaseCorePlugin.h' file not found。还有什么我可以尝试的吗?这真令人气愤!
  • @MikeCoverUps 你找到解决方案了吗?
  • 不,很遗憾没有。不幸的是,随着工作的进行,我无法进一步追求这一点,所以这被抛在了后面。有一天我会回到 is,希望到那时 Flutter 会更加稳固。
  • @rmtmckenzie 谢谢。它是否记录在某处,因为这看起来像是一个常见错误,我浪费了一天时间寻找解决方案。
  • @shinriyo 假设您已经尝试了我回答中的所有步骤,您可能想要创建一个新问题来解释您的项目及其可能具有的任何特殊性,或者至少给出比 没用。 Flutter 发布了许多应用程序,并且归档确实有效。您的评论绝对没有为任何人提供足够的信息来帮助您。
【解决方案2】:
cd ios
pod update Firebase/Firestore

然后按照这个命令进行缓存修复

flutter clean

flutter pub cache repair

尝试解决问题。如果这不起作用,更严厉的措施是删除ios/Pods 文件夹和Podfile.lock。

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 2020-09-17
    • 2021-08-02
    • 2021-03-14
    • 2021-06-25
    • 2018-10-16
    • 1970-01-01
    • 2020-11-27
    • 2021-06-07
    相关资源
    最近更新 更多