Flutter在IOS上:致命错误:找不到模块'cloud_firestore'。
Flutter在IOS上:致命错误:找不到模块'cloud_firestore'。
在GitHub和Stack上搜索了很长时间,找到了类似的错误,但没有一个提出的解决方案能够帮助我解决这个错误。
我尝试了一些事情(有点无序):
- 删除IOS衍生数据
- 更改firestore包版本
- flutter clean
- rm -Rf ios/Pods
- rm -Rf ios/.symlinks
- rm -Rf ios/Flutter/Flutter.framework
- rm -Rf ios/Flutter/Flutter.podspec
- rm -rf ios/Podfile ios/Podfile.lock ios/Pods ios/Runner.xcworkspace
- pod init,install和update
- 从podfile中取消注释platform :ios,'9.0'(可能与此问题无关)
这是错误信息:
** BUILD FAILED **
Xcode的输出:
↳
/Users/flo/Mobile/we_ll_see/ios/Runner/GeneratedPluginRegistrant.m:10:9: fatal error: module
'cloud_firestore' not found
@import cloud_firestore;
~~~~~~~^~~~~~~~~~~~~~~
1 error generated.
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description
需要一些帮助。
Flutter on IOS: fatal error: module 'cloud_firestore' not found
最近在使用Flutter开发IOS应用时,遇到了一个问题:fatal error: module 'cloud_firestore' not found。经过一番研究和尝试,我找到了解决方法。
问题的原因是我在Podfile中指定了平台为iOS 11.0,但我在XCode中忘记更新了相应的设置。因此,编译时找不到'cloud_firestore'模块,导致了这个错误的出现。
解决方法就是确保在XCode中的设置与Podfile中指定的平台一致。具体来说,我需要打开Runner.xcworkspace而不是Runner.xcodeproj。然后,我将deployment target更新为与Podfile中定义的相同版本。
这样一来,问题就解决了。'cloud_firestore'模块被正确地找到,不再出现fatal error的错误提示了。
通过这个经历,我意识到在使用Flutter开发IOS应用时,需要注意保持XCode和Podfile的设置一致,以避免类似的问题。希望这篇文章能帮助到其他遇到类似问题的开发者。
Flutter在iOS上运行时,可能会出现“fatal error: module 'cloud_firestore' not found”的错误。这个错误的出现原因是在手动创建Podfile时,可能会导致错误。
解决这个问题的方法是,不要手动设置Podfile。Flutter只需要使用pubspec.yaml文件即可运行,不需要手动设置Podfile。如果按照firestore官方网站上的安装指南操作,只需在使用Xcode添加了GoogleService-Info.plist文件后,跳过后续的操作即可。
具体来说,按照以下步骤操作:
1. 使用Android Studio打开项目。
2. 在终端中,导航到项目的根目录。
3. 执行以下命令:flutter clean
4. 使用Xcode打开iOS文件夹中的Runner.xcworkspace文件。
5. 在Xcode中,选择Runner项目,然后选择Targets > Runner > Build Phases。
6. 展开Embed Frameworks,并确保GoogleService-Info.plist文件已添加到其中。
7. 保存并关闭Xcode。
8. 返回终端,再次执行以下命令:flutter run
通过以上步骤,应该能够解决“fatal error: module 'cloud_firestore' not found”的问题。
Flutter在iOS上的错误:致命错误:找不到模块'cloud_firestore'。
这是一个非常糟糕和不幸的错误。在尝试解决这个问题几个小时后,我终于找到了解决办法。问题是,您的Podfile没有与pubspec.yaml文件更新。我认为您的Podfile几乎是空的:
target 'Runner' do
use_frameworks!
end
但这是一个大问题。如果你尝试执行以下操作,将创建这个Podfile:$ rm Podfile,然后 $ pod init。
以下是我的解决办法:
...但在此之前,您必须检查一些内容,否则我的解决办法可能不起作用:
运行:
$ pod install
如果此命令的结果是:
There are 0 dependencies from the Podfile and 0 total pods installed.
您可以确定,这个解决办法是有效的。否则它也可以正常工作,但也许您应该在评论中告诉我您的命令行结果!!
现在回到解决办法...
步骤1:使用以下代码更新您的Podfile(请删除文件中的旧内容):
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
现在,Podfile正在更新您在podspec.yaml文件中编写的pods。
现在,您需要通过调用以下命令将podspec.yaml文件与Xcode pods同步:
$ pod install
然后,你将看到你下载的所有pods。在此之后,您可以通过调用flutter run或在编辑器中运行您的flutter项目。
注意:Podfile.lock文件列出了每个pod的pods和版本。'真实'的Podfile仅用于podspec.yaml文件与真实pods之间的连接。如果您查看Podfile.lock文件,您会发现没有任何pod被写下来,这就是问题的原因。如果没有任何要安装的pod,每个模块(例如'cloud-firestore')都找不到...
希望这个答案对您有帮助,如果有什么地方不起作用,您可以在评论中问我,但我知道这不会发生 🙂
macOS的编辑:
platform :osx, '10.11'
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def flutter_root
generated_xcode_build_settings_path =
File.expand_path(File.join('..', 'Flutter', 'ephemeral',
'Flutter-
Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If
you're running pod install manually, make sure \"flutter pub
get\"
is
executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #.
{generated_xcode_build_settings_path}. Try deleting Flutter-
Generated.xcconfig, then run \"flutter pub get\""
end
require File.expand_path(File.join('packages', 'flutter_tools',
'bin', 'podhelper'), flutter_root)
flutter_macos_podfile_setup
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_macos_pods
File.dirname(File.realpath(__FILE__))
end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_macos_build_settings(target)
end
end
是的,我遇到了这个问题,因为我手动生成了Podfile,因为出现了这个错误:stackoverflow.com/questions/64397478/…。所以我解决了这个问题,Xcode能够找到这些模块了。
我在ios文件夹中运行`pod install`后得到了这个消息。Pod安装完成!从Podfile中有1个依赖项和10个总的安装的pods。
非常完美,对我有效。iOS 14.5 iPhone 12 pro。
瓦伊尔,这可能是一个愚蠢的问题,但我来自Android,我没有podspec.yaml
文件。我在我的flutter应用根目录下有一个pubspec.yaml
文件和一个在我的ios/flutter/目录下的flutter.podspec
文件。我目前遇到了与OP相同的错误,所以我正在尝试解决这个问题。
我无论如何运行了您的代码,似乎它已经部分安装了,但遇到了以下警告/错误:`[!] CocoaPods could not find compatible versions for pod "Flutter": In Podfile: Flutter (from Flutter
) wakelock (from .symlinks/plugins/wakelock/ios
) was resolved to 0.0.1, which depends on Flutter Specs satisfying the Flutter (from
Flutter), Flutter
dependency were found, but they required a higher minimum deployment target.` 有关如何继续的建议吗?
2023年三月,像魅力一样运行。