3

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

cloud_firestore:^0.6.3

颤振已更新。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 没有问题。

更新

经过另一项研究,我发现删除#use_frameworks!从 iOS 文件夹中的 Podfile 中编译项目。但是,如果无法删除,该怎么办?

4

2 回答 2

7

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

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

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

以下是确保您的环境支持修复的步骤,来自另一个 github 问题

  • 确保你安装了 Cocoapods 1.5.0(pod --version 应该说 >= 1.5.0)
  • 将您对 firebase_xxx、google_sign_in 或 cloud_firestore 插件的任何依赖项更改为最新版本(查找涉及 Cocoapods 1.5.0 的更改日志条目)
  • 在 Flutter master 分支上更改ios/Podfile为最新版本(https://github.com/flutter/flutter/tree/master/packages/flutter_tools/templates/cocoapods
  • 删除 ios/Podfile.lock 和 ios/Pods
  • 使用切换到 Flutter 主(或开发)分支flutter channel <branch>
  • flutter clean ; flutter run
于 2018-05-02T17:29:43.970 回答
0
cd ios
pod update Firebase/Firestore

然后进行缓存修复,请按照此命令

flutter clean

flutter pub cache repair

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

于 2020-08-29T12:02:32.920 回答