一尘不染

Firestore无法使用Flutter for iOS构建

flutter

我想将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中进行项目编译。但是,如果无法删除该怎么办?


阅读 252

收藏
2020-08-13

共1个答案

一尘不染

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

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

这已在master分支/通道上进行了固定和测试,但现在可能应该已经到达dev分支/通道。

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

  • 确保已安装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主(或开发)分支 flutter channel <branch>
  • flutter clean ; flutter run
2020-08-13