错误: 在 iOS 上运行 flutter 时找不到‘ Flutter/Flutter.h’文件

我不知道为什么,但我不能建立或运行在我的新 Macbook 应用程序,我运行在另一台 Mac 或我的 Windows 计算机相同的文件夹和运行完美。 在这里,当我运行颤振干净,我必须运行酒吧得到解决的问题,这正常吗?

如果我创建一个新的项目,我可以运行颤振运行正常,所以我认为也许有 我认为这可能与插件有关。

你知道我该怎么解决这个问题吗? 谢谢

Flutter Doctor
[✓] Flutter (Channel master, 1.24.0-8.0.pre.343, on macOS 11.0.1 20B29 darwin-x64, locale es-419)
• Flutter version 1.24.0-8.0.pre.343 at /Users/leo/tools/flutter
• Framework revision cf6c33e58a (2 days ago), 2020-11-21 14:04:01 -0800
• Engine revision 23a8e027db
• Dart version 2.12.0 (build 2.12.0-62.0.dev)


[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /Users/leo/Library/Android/sdk
• Platform android-30, build-tools 30.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
• All Android licenses accepted.


[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.2, Build version 12B45b
• CocoaPods version 1.9.3


[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)


[✓] Connected device (2 available)
• sdk gphone x86 arm (mobile) • emulator-5554                        • android-x86 • Android 11 (API
30) (emulator)
• iPhone 12 Pro Max (mobile)  • F768139D-7B87-4D9E-93B8-14C7D63786B0 • ios         •
com.apple.CoreSimulator.SimRuntime.iOS-14-2 (simulator)


• No issues found!








Launching lib/main.dart on iPhone 12 Pro Max in debug mode...
Running Xcode build...
Xcode build done.                                           11.4s
Failed to build iOS app
Error output from Xcode build:
↳
** BUILD FAILED **




Xcode's output:
↳
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/vibration-umbrella.h"
^
/Users/leo/Apps/previate_esta/ios/Pods/Target Support Files/vibration/vibration-umbrella.h:13:9: note:
in file included from /Users/leo/Apps/previate_esta/ios/Pods/Target Support
Files/vibration/vibration-umbrella.h:13:
#import "VibrationPlugin.h"
^
/Users/leo/.pub-cache/hosted/pub.dartlang.org/vibration-1.4.0/ios/Classes/VibrationPlugin.h:1:9: error:
'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
^
<unknown>:0: error: could not build Objective-C module 'vibration'
In file included from
/Users/leo/.pub-cache/hosted/pub.dartlang.org/url_launcher-5.5.3/ios/Classes/FLTURLLauncherPlugin.m:7:
/Users/leo/.pub-cache/hosted/pub.dartlang.org/url_launcher-5.5.3/ios/Classes/FLTURLLauncherPlugin.h:5:9
: fatal error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
^~~~~~~~~~~~~~~~~~~
1 error generated.
In file included from
/Users/leo/.pub-cache/hosted/pub.dartlang.org/shared_preferences-0.5.10/ios/Classes/FLTSharedPreference
sPlugin.m:5:
/Users/leo/.pub-cache/hosted/pub.dartlang.org/shared_preferences-0.5.10/ios/Classes/FLTSharedPreference
sPlugin.h:5:9: fatal error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
^~~~~~~~~~~~~~~~~~~
1 error generated.
In file included from
/Users/leo/.pub-cache/hosted/pub.dartlang.org/share-0.6.5/ios/Classes/FLTSharePlugin.m:5:
/Users/leo/.pub-cache/hosted/pub.dartlang.org/share-0.6.5/ios/Classes/FLTSharePlugin.h:5:9: fatal
error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
^~~~~~~~~~~~~~~~~~~
1 error generated.
In file included from
/Users/leo/.pub-cache/hosted/pub.dartlang.org/sensors-0.4.2+4/ios/Classes/FLTSensorsPlugin.m:5:
/Users/leo/.pub-cache/hosted/pub.dartlang.org/sensors-0.4.2+4/ios/Classes/FLTSensorsPlugin.h:5:9: fatal
error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
^~~~~~~~~~~~~~~~~~~
1 error generated.
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description


Could not build the application for the simulator.
Error launching application on iPhone 12 Pro Max.
139618 次浏览

我找到解决办法了!

  1. 备份 ios/Runner文件夹。

  2. Delete the ios folder.

  3. 在项目所在的前一个文件夹(cd users/user/"projects_folder")中运行 flutter create (your project name) (this will recreate your ios folder).

  4. Paste your Runner backup in the ios folder (into the project).

  5. Open Runner.xcworkspace (into ios folder) and there, check the Version, the Bundle ID, all the info.

  6. (If do you Have Firebase, you have to copy and paste again the Google Service-Info.Plist into the Runner folder (Always through Xcode) (If do you do this manually, it doesn't work).

最后,flutter run和应该工作!

如果 flutter run失败:

  1. cd ios
  2. pod install
  3. cd ..
  4. flutter run

一个更简单的解决办法:

  1. 删除 Ios/Flutter/Flutter.podspec: rm ios/Flutter/Flutter.podspec
  2. flutter clean
  3. 再次运行你的应用程序。

取自 给你

可能发生的情况是,特定的 iOS POD 依赖项没有 Flutter 依赖项。

对我来说是 firebase_crashlytics: ^1.0.0

遗憾的是,要由维护人员提供工作解决方案。您可以删除位于以下位置的缓存版本:

/Users/user/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_crashlytics-1.0.0/ios/firebase_crashlytics.podspec

请浏览此 问题作参考。

特定的第三方 lib 的. podspec 应该包含:

s.dependency 'Flutter'

进去

Pod::Spec.new do |s|
...

Then, invoke pod install in ios directory, to reflect the change.

最后,安排您的构建。

编辑: 最新版本的 Crashlytics 刚刚发布,请升级 pubspec.yml:

firebase_crashlytics: ^2.0.0

下面是我的旧答案。

For Flutter 2, you can follow the instructions in GitHub 的评论. Text pasted below:

Flutter 2.0.4的解决方案是使用来自 git 的 firebase _ crashlytics 而不是 pub.dev 提交) :

  firebase_crashlytics:
git:
url: git://github.com/FirebaseExtended/flutterfire.git
path: packages/firebase_crashlytics/firebase_crashlytics
ref: 200b8ca8f1c452e4249fb791e53cc55e786ac768

删除这些文件,按@Raffaelli L.C. 的回答重新创建。 颤动运行命令现在工作 enter image description here

对我有用的东西:

我的 pubspec 中的一些依赖项已经过时了(具体来说,我使用的是 crashalytics 1.0.0和 Flutter 2.0.5,它们是不兼容的,因此抛出了这个错误)。

将 Crashalytics 升级到2.0.0为我解决了这个问题。

我将查看抛出此错误的任何软件包,并查看是否有任何升级可用。 如果这不起作用,尝试降级你的颤振版本。

解决办法就是
1-改变你的 flutter sdk 位置,并确保你的 flutter sdk 新位置没有任何空格符
第二,删除你的休眠舱
三振出局
四振酒吧
5-cd ios
六吊舱安装
7-flutter run

在你的终端使用这个推荐:

flutter pub cache repair

我也遇到过类似的问题,在我的案例中,我甚至不能使用命令行或 xCode 来构建我的项目,但是当我运行 pod install --verbose时,我意识到在 pod install期间有一个特定的错误

方法‘ each _ child’for # Dir: 0x00007ff10befa7f0

为了寻找这个特定的错误,我发现了这个 回答,我意识到我正在使用 ruby 2.5,而 Flutter 为 iOS 设备生成的一个文件正在尝试使用一个在2.6版本中引入的方法。

按照这个答案上的步骤,我可以在 iOS 模拟器上运行我的 Flutter 应用程序。

The method dir.each_child 是在 Ruby 2.6中引入的, but you are using Ruby 2.3.0.

您应该使用 更新 Ruby到2.6.0或更高版本的2.x。

在 Ruby 更新之后,您可能还需要重新启动 IDE 和 重新安装 cocoapods

我尝试了以上所有的解决方案,但最终还是重新创建了 ios 目录。

rm -rf ios
flutter create -i swift .

Note: by performing the above steps will lose all native ios setup. In my case I was getting this error in the demo project I did this.

降级到 1.22.6(任何低于2.0.0的版本)

选择一

flutter downgrade v1.22.6

在此之后,运行任何 Flutter 命令(如 Flutter doctor) ,Flutter 将负责下载/编译运行此版本所需的所有内容。

选择二

您还可以从 给你下载 Flutter SDK 的其他版本

还有一个办法。

如果您在使用 火力点颤抖项目中偶然发现了这个问题,并且上述步骤都不起作用,请尝试以下步骤:

  1. 备份项目(以防万一)。
  2. 删除整个 ios 文件夹内的扑动项目。
  3. 在 flutter 项目的 父文件夹调用 flutter create <projectname>(即上面的一个文件夹) ,这将重新创建 ios 文件夹。
  4. GoogleService-Info.plist文件移动到项目 在 Xcode
  5. 现在到重要的部分: 当你按照 指令在 Firebase 控制台下的“ 将 firebase 添加到你的 iOS 应用程序中”,跳过第三步(添加 FirebaseSDK)和 跳过第四步(添加初始化代码)。换句话说: 不要调用 pod init,也不要调用 pod install。也保持 AppDelegate 没变!相反,只需调用 flutter run,它负责设置 pods。
  6. ios/Podfile中: 取消对 platform :ios, '8'行的注释并设置 iOS 版本(在编写本文时,12.1似乎非常适合)。在 Xcode 设定同样的版本,在 PROJECT -> Runner -> Deployment Target -> iOS Deployment Target和(也在 Xcode)设定在 TARGETS -> Runner -> Deployment Info
  7. 呼叫 flutter cleanflutter run

运气好的话,你能让它重新运转起来。

我被这个错误消息困住了好几个月! 在经历了许多的尝试和错误之后,我终于,终于让它工作起来了,这就是我所遵循的步骤。

  1. Go to your project folder, delete the ios folder in the project
  2. 通过运行 flutter create .创建一个新项目 This step actually did not work for me because my project name was CamelCase, and maybe a recent update for Flutter did not allow this as the project name. I had to change the project name throughout the project before I ran this command.
  3. 步骤2实际上在我现有的项目中创建了一个新项目,但是不用担心,您所需要的只是其中的 文件夹。
  4. 复制粘贴这个 ios 文件夹到您的项目文件夹,并删除新创建的项目文件夹,您不再需要这个(我相信有一个更好的方法来做到这一点)。
  5. Flutter run 给了我一个 Could not locate configuration file: 'GoogleService-Info.plist'错误,通过从 Firebase 获取最新的 GoogleService 文件并通过 X 代码添加,这个问题很容易解决。
  6. 然后颤动跑,在我的物理设备上跑,瞧!

This error is due to not using the appropriate flutter version. Your packages are written in old flutter version. You can update packages to latest versions or you can revert to the flutter version appropriate for the packages you use in your project.

我因为这个错误撞了我的头三天。 对我来说, 这个错误是由一个插件引起的: Webview _ flutter.

This is how approached to this problem:

1.)从 pubspec.yaml 中删除该插件

2.) cd ios

3.) pod deintegrate

4.)在 pubspec.yaml 中再次添加该插件

(5)拍打干净

6.) flutter pub get

7) cd iOS

8)吊舱安装

This should work! It worked in my project.

我得到了它的解决方案添加臂64为被排除的架构在吊舱和主要目标。

运行 flutter create (您的项目名称)。在项目所在的前一个文件夹中(cd 用户/用户/“ Projects _ file”)(这将重新创建您的 IOS 文件夹)。

2-取消注释 # Platform: ios,Podfile 中的’9.0’-i 设置为’10.0’

三分离舱回收更新

四吊舱安装

In file included from /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_crashlytics-0.4.0+1/ios/Classes/FLTFirebaseCrashlyticsPlugin.m:5:
/Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_crashlytics-0.4.0+1/ios/Classes/FLTFirebaseCrashlyticsPlugin.h:8:9: fatal error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
^~~~~~~~~~~~~~~~~~~
While building module 'firebase_core' imported from /Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_crashlytics-0.4.0+1/ios/Classes/FLTFirebaseCrashlyticsPlugin.h:12:
In file included from <module-includes>:1:
In file included from /Users/user/Documents/Projects/Vorso-Maui/flutter/vorso_maui/ios/Pods/Target Support Files/firebase_core/firebase_core-umbrella.h:13:
/Users/user/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.7.0/ios/Classes/FLTFirebaseCorePlugin.h:8:9: fatal error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
^~~~~~~~~~~~~~~~~~~
1 error generated.
2 errors generated.

正如其他回应在这里提到,FirebaseCrashlytics 为我造成这个错误,由于 [ firebase _ crashlytics ]‘ Flutter/Flutter.h’文件未找到 # 5440

FirebaseCrashlytics 的上一个遗留版本是0.4.0 + 1,其中不包括修复。这个修复包含在后来的空安全版本(v2.0.0)中。

However, when I tried to use versions v2+ in which the bug had been fixed, I got trapped in dependency hell - unresolvable conflicts between dependencies / sub-dependencies.

因此,我创建了一个 fork (Firebase _ crashlytics _ Heritage)来提供遗留兼容版本中的补丁。

这个分叉版本的一致性是0.4.0 + x。

希望它可以帮助其他人更容易地使用遗留版本并修复这个 bug。

原因可能是 Podfile conflict

这是 easy way, re-install Pod file.

要彻底清理(删除所有链接点)并创建升级到新的(卸载和再次安装) ,

写下以下命令:

flutter clean


rm -Rf ios/Pods
rm -Rf ios/.symlinks
rm -Rf ios/Flutter/Flutter.framework
rm -Rf ios/Flutter/Flutter.podspec

Then for reproduce Podfile follow this command

rm ios/Podfile

最后,您的项目已经准备就绪,可以开始了

flutter run

Podfile 内部的变化

#platform :ios, '9.0'

Uncomment this line to define a global platform for your project in the Podfile

平台: ios,’13.0’

在 VSCode 测试? 它将节省您的3个小时。

我认为情况和解决方案将是多种多样的,但尝试和失败的每个情况下,在这篇文章有时仍然是有益的。 My case:

修复发布缓存

flutter pub cache repair

运行您的项目,这应该显示是否有任何依赖那些吊舱过时

flutter run

摆脱颤动的身材

flutter clean


rm ios/Podfile

更新分离舱

pod repo update

再次运行您的项目,希望它能够成功

flutter run

如果扑动权限 _ 处理程序相关

如果您刚刚在应用程序中集成了初始化权限处理程序,并按照说明修改 Ios podfile以添加所需的权限,那么您可能会在使用 提供的指示时遇到此错误。

在修改 podfile 之后,我开始收到 fatal error: 'Flutter/Flutter.h' file not found错误。

解决方案

解决方案是改变 podfile 修改的方式,以便正确地包含 flutter_additional_ios_build_settings(target),并为 target.build_configurations.each...数组提供适当的嵌套。

Podfile 修改示例

post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
# You can enable the permissions needed here. For example to enable camera
# permission, just remove the `#` character in front so it looks like this:
#
# ## dart: PermissionGroup.camera
# 'PERMISSION_CAMERA=1'
#
# When enabled here, corresponding metadata should be added to info.plist
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',


## dart: PermissionGroup.calendar
# 'PERMISSION_EVENTS=1',


## dart: PermissionGroup.reminders
# 'PERMISSION_REMINDERS=1',


## dart: PermissionGroup.contacts
# 'PERMISSION_CONTACTS=1',


## dart: PermissionGroup.camera
# 'PERMISSION_CAMERA=1',


## dart: PermissionGroup.microphone
# 'PERMISSION_MICROPHONE=1',


## dart: PermissionGroup.speech
# 'PERMISSION_SPEECH_RECOGNIZER=1',


## dart: PermissionGroup.photos
# 'PERMISSION_PHOTOS=1',


## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
# 'PERMISSION_LOCATION=1',


## dart: PermissionGroup.notification
# 'PERMISSION_NOTIFICATIONS=1',


## dart: PermissionGroup.mediaLibrary
# 'PERMISSION_MEDIA_LIBRARY=1',


## dart: PermissionGroup.sensors
# 'PERMISSION_SENSORS=1',


## dart: PermissionGroup.bluetooth
# 'PERMISSION_BLUETOOTH=1',


## dart: PermissionGroup.appTrackingTransparency
# 'PERMISSION_APP_TRACKING_TRANSPARENCY=1',


## dart: PermissionGroup.criticalAlerts
# 'PERMISSION_CRITICAL_ALERTS=1'
]
end
end
end

Mac 上的 Flutter 版本比我编写程序的 Flutter 版本要高... ... 所以我就把 Flutter 版本降级到了我编写程序的那个版本,然后 tada 错误解决了确保你的 Flutter 版本和你编写程序的笔记本电脑是同一个版本。在我的例子中,我在 Windows 笔记本电脑上编写了一个老版本的 Flutter 版本,因为厌倦了在最新版本的 Flutter 上运行,所以出现了错误。 如果这是你的情况,然后通过下面的链接- 颤振模拟器错误: 命令 PhaseScriptExecution 失败,非零退出代码

解决方案1

  1. 将 IOS 文件夹中的 Runner 文件夹备份到安全位置。

  2. 删除 ios 文件夹:

enter image description here

  1. 仍然在根目录中,运行以下命令(包括空格和句点) :

flutter create .

一个新的 ios 文件夹将在您的项目中生成。

  1. 复制并粘贴之前备份的 Runner 文件夹到新的 IOS 文件夹:

enter image description here

将出现一个对话框。单击“替换”按钮继续。

  1. 如果你的项目没有使用 Firebase,你可以忽略这一步,然后继续下一步。否则,您需要重新添加 GoogleService-Info。通过使用 Xcode 打开 ios 文件夹,右键单击 Runner,从下拉菜单中选择 Add Files to“ Runner”,然后选择 GoogleService-Info。与项目关联的 plist 文件。

enter image description here

  1. 导航到 IOS 文件夹并运行:

pod install

你可能会陷入这样的情况:

enter image description here

# Uncomment this line to define a global platform for your project platform :ios, '11.0'

现在再次运行 pod install,它应该可以工作(可能会出现一些警告,但我们不关心它们)。

  1. 最后,回到你的根目录,像往常一样运行你的项目(别忘了先启动一个 iOS 模拟器) :

cd .. flutter run

如果仍然出现错误,请执行以下命令清除 Flutter 的构建缓存:

flutter clean

并更新. pub-cache 中的依赖项:

flutter pub cache repair

Then run your project again.

解决方案2

有时,错误是由一个简单的原因造成的: 您目前在主通道而不是稳定通道。根据 Flutter 维基百科:

主频道: 目前的尖端树,绝对最新的尖端建设。通常功能,虽然有时事情意外打破。 稳定通道: 强烈推荐所有生产应用程序版本使用此通道。 你现在需要做的就是切换到稳定通道:

flutter channel stable

然后:

flutter clean

最后:

flutter run

解决方案3

如果上面的两种方法都不能解决问题,您可以尝试这样做。

  1. 进入/ios 文件夹并删除以下内容:

Flutter/Flutter.podspec 文件 Pods folder 锁定文件

  1. 仍然在 IOS 文件夹中,执行以下命令:

pod install --repo-update

  1. 导航到项目的根目录,并通过运行以下命令清理项目:

flutter clean

  1. 运行它:

flutter run

希望这个能帮上忙... 图片来源: 古德曼

如果只在运行“ flutter build ipa”时遇到这个问题,请在 XCode 中确保 Runner and Pods 下的 Deployment Info 与 ios/Podfile 中的“ Platform”匹配。

Podfile

Runner

对我来说,一个非常简单的解决方案很简单: 关闭 xcode 项目。然后,在 Android Studio 上,通过执行 Build-> Flutter-> Build iOS 来构建 iOS 存档。然后重新打开 xcode 项目,它构建并运行良好。

这也发生在我身上。按照下面的步骤为我解决了问题!

  1. 将 ios 文件夹中的 Runner 文件夹备份到安全位置。
  2. 删除 ios 文件夹:
  3. 转到 目录,运行以下命令:

颤动产生。

  1. 以上步骤完成后,将创建 ios 文件夹。复制并粘贴之前备份的 Runner 文件夹到新的 IOS 文件夹:
  2. 在 android 工作室或 VS 代码中运行项目
  3. 导航到 IOS 文件夹并运行:

吊舱安装

  1. iOS > Runner.xcworkspace 右击和 Flutter > 在 xCode 中打开 iOS 模块 enter image description here

会成功的:)

  1. 复制 info.plist、 Assets.xcassets 和其他重要文件。
  2. Create a New project with same name and bundle id.
  3. Add an iOS project in your old project and add 1st step information in that.
  4. Run project. It's working now.

我是这样解决这个问题的:

  1. 在你的终端 flutter packages upgrade上运行
  2. 在项目中创建“ iOS”文件夹的备份。
  3. delete your 'iOS' folder from your project.
  4. 运行 flutter clean
  5. 运行 flutter pub get
  6. 在根项目目录上运行 flutter create .
  7. 这将在回购中创建一个“ ios”文件夹。将 Info.plist、 Podfile 和任何其他配置文件(如 GoogleServices.plist)从备份“ ios”文件夹复制到新创建的“ ios”文件夹。

尝试再次运行您的项目。它现在应该是工作:)

对我来说,我已经解决了这个问题

运行器—— > 构建阶段——-> 取消安装选项卡enter image description here

我找到了一个简单的解决办法。 以防万一保存备份:)

  1. Rm-rf ios
  2. 颤动创造-我迅速。

就是这样。

从 mac System Settings-> Privacy & Security-> Full Disk Access完全访问您的 Xcode,并从应用程序列表中打开 Xcode 切换按钮。 enter image description here