Firestore无法使用Flutter for iOS构建

时间:2018-05-02 00:19:11

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

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

  

cloud_firestore:^ 0.6.3

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

在为iOS模拟器编译app时,我遇到了这个构建错误

 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更新以确保它与cocoapods没有问题。

更新

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

2 个答案:

答案 0 :(得分:5)

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

之前设置#use_frameworks的原因是它没有将所有内容链接到正确的库中,而cocoapods错误阻止它找到某些文件。所有内容的最新版本都使用动态链接,但podfile中的static_framework = true表示静态依赖项的依赖关系,因此他们需要的所有内容实际上都链接到了正确的位置。

这是固定的&amp;在主分支/通道上测试,但现在可能已经到了dev分支/通道。

以下是other github issue确保您的环境支持此修复程序的步骤:

  • 确保安装了Cocoapods 1.5.0(pod --version应该 说&gt; = 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 <branch>
  • 切换到Flutter master(或dev)分支
  • flutter clean ; flutter run

答案 1 :(得分:0)

cd ios
pod update Firebase/Firestore

然后按照以下命令进行缓存修复

flutter clean

flutter pub cache repair

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