error: 'Flutter/Flutter.h' file not found when flutter run on iOS

error: 'Flutter/Flutter.h' file not found when flutter run on iOS

我不知道为什么,但我无法构建或 运行 我的新 Mac 书中的应用程序,我 运行 另一个 Mac 上的相同文件夹] 或我的 windows 电脑和 运行 完美。 在这里,当我 运行 flutter clean 时,我必须 运行 pub get 来解决问题,这正常吗?

如果我创建一个新项目,我可以运行 正常地运行 flutter,所以我想也许有 我觉得可能跟插件有关

你知道我该如何解决这个问题吗?谢谢

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.

我找到了解决办法!

  1. 备份 ios/Runner 文件夹。

  2. 删除 ios 文件夹。

  3. 运行flutter create (your project name)。在您拥有项目的上一个文件夹中(cd users/user/"projects_folder") (这将重新创建您的 ios 文件夹)。

  4. 将您的 运行ner 备份粘贴到 ios 文件夹中(到项目中)。

  5. 打开 Runner.xcworkspace(进入 ios 文件夹),检查版本、Bundle ID 和所有信息。

  6. (如果你有 Firebase,你必须再次复制并粘贴 Google Service-Info.PlistRunner 文件夹(总是通过 Xcode)(如果您手动执行此操作,则不起作用)。

终于,flutter run 应该可以了!

如果flutter run失败:

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

更简单的解决方法:

  1. 删除ios/Flutter/Flutter.podspecrm ios/Flutter/Flutter.podspec
  2. flutter clean
  3. 运行 又是你的应用。

取自here

可能会发生特定的 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

请访问此issue以供参考。

特定第 3 方库的 .podspec 应具有:

s.dependency 'Flutter'

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

然后,调用 ios 目录中的 pod install,以反映更改。

最后,安排您的构建。

编辑:Flutter 2 刚刚发布了新版本的 Crashlytics。只需升级您的 pubspec.yml:

firebase_crashlytics: ^2.0.0

下面是我的旧誓。

对于 Flutter 2,您可以按照 this GitHub comment 中的说明进行操作。下面粘贴的文本:

Workaround for Flutter 2.0.4 is to use firebase_crashlytics from git instead of pub.dev. This seems to work (ref to the currently latest commit):

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

This 解决方案对我有用:

Changing PodFile from:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
    config.build_settings['ENABLE_BITCODE'] = 'NO'
    config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
    end
  end
end

to

post_install do |installer|
  installer.pods_project.targets.each do |target| 
    flutter_additional_ios_build_settings(target)
  end
end

删除了这些文件,重新命名为@Raffaelli L.C。回答。 flutter 运行 命令现在有效

对我有用的东西:

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

将 crashalytics 升级到 2.0.0 为我修复了它。

我会调查引发此错误的软件包,看看是否有可用的升级。 如果这不起作用,请尝试降级您的 flutter 版本。

解决办法是
1 - 更改您的 flutter sdk 位置并确保您的 flutter sdk 新位置没有任何 space char
2 - 删除你的 pods
3 - 颤动干净
4 - flutter pub get
5 - CD ios
6 - pod 安装
7 - 颤振 [​​=22=]

在您的终端中使用此命令:

flutter pub cache repair

我遇到了类似的问题,在我的情况下,即使使用命令行或使用 xCode,我也无法构建我的项目,但是当我 运行 pod install --verbose 我意识到 pod install

期间出现特定错误

undefined method `each_child' for #Dir:0x00007ff10befa7f0 Did you mean? each_slice

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

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

The method dir.each_child was introduced in Ruby 2.6, but you are using Ruby 2.3.0.

You should update Ruby to 2.6.0 or later 2.x version.

After Ruby updating you may also need to restart your IDE and re-install cocoapods.

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

rm -rf ios
flutter create -i swift .

注意: 通过执行上述步骤将丢失所有本机 ios 设置。就我而言,我在执行此操作的演示项目中遇到此错误。

将 flutter 降级到 1.22.6(2.0.0 以下的任何版本)

选项 1

flutter downgrade v1.22.6

在此之后,运行 任何 Flutter 命令(例如 flutter doctor),Flutter 将处理 downloading/compiling 此版本 运行 所需的一切。

选项 2

您还可以从here

下载其他版本的Flutter SDK

另一种方法...

如果您在使用 FirebaseFlutter 项目中偶然发现此问题,并且上述步骤均无效,请尝试以下操作:

  1. 备份您的项目(以防万一)。
  2. 删除 Flutter 项目中的整个 ios 文件夹。
  3. 在您的 flutter 项目的 父文件夹 调用 flutter create <projectname>(即上面的一个文件夹)。这将重新创建 ios 文件夹。
  4. GoogleService-Info.plist 文件移动到您的项目 in Xcode.
  5. 现在是重要的部分:当您按照“将 firebase 添加到您的 iOS 应用程序[=55=”下的 Firebase 控制台 中的说明]", 跳过第 3 步(添加 Firebase SDK)和跳过第 4 步(添加初始化代码)。换句话说:不要调用 pod init,也不要调用 pod install。同样保持AppDelegate不变!而是简单地调用 flutter run,它处理设置 pods.
  6. In ios/Podfile:取消注释行 platform :ios, '8' 并设置 iOS 版本(12.1 在撰写本文时似乎很合适)。在 PROJECT -> Runner -> Deployment Target -> iOS Deployment Target 的 Xcode 和 TARGETS -> Runner -> Deployment Info.
  7. 下(也在 Xcode)中设置相同的版本
  8. 调用 flutter cleanflutter run

幸运的是你已经找回了它运行。

几个月来我一直被这条错误消息困住! 经过大量的试验和错误,我终于让它工作了,这些是我遵循的步骤。

  1. 转到您的项目文件夹,删除项目中的ios文件夹
  2. 通过 运行ning flutter create . 创建一个新项目 这一步实际上对我不起作用,因为我的项目名称是 CamelCase,也许 Flutter 最近的更新不允许将此作为​​项目名称。在我 运行 这个命令之前,我不得不在整个项目中更改项目名称。
  3. 第 2 步实际上在我现有的项目中创建了一个新项目,但不用担心,您只需要 ios 文件夹。
  4. 将此 ios 文件夹复制并粘贴到您的项目文件夹中,然后删除新创建的项目文件夹,您不再需要它了(我相信有更好的方法可以做到这一点)。
  5. Flutter 运行 给了我一个 Could not locate configuration file: 'GoogleService-Info.plist' 错误,这很容易通过从 Firebase 获取最新的 GooglService 文件并通过 X 代码添加来解决。
  6. 然后在我的实体设备上使用运行、运行,瞧!

这个错误是因为没有使用合适的flutter版本。您的包是用旧的 flutter 版本编写的。您可以将包更新到最新版本,也可以恢复到适合您在项目中使用的包的 flutter 版本。

这个错误让我头疼了三天。 就我而言, 由于插件而发生此错误: webview_flutter.

这是解决这个问题的方法:

1.) 从 pubspec.yaml

中删除该插件

2.) cd ios

3.) pod 分解

4.) 再次在 pubspec.yaml

中添加该插件

5.) 颤动干净

6.) flutter pub get

7.) cd iOS

8.) pod 安装

这应该有效!它在我的项目中有效。

我通过在 pods 和主要目标中为排除的架构添加 arm64 解决了这个问题。

1-运行 flutter create(你的项目名)。在您拥有项目的上一个文件夹中(cd users/user/projects_folder")(这将重新创建您的 ios 文件夹)。

2-取消注释 #platform :ios, Podfile 中的 '9.0' - 我设置为 '10.0'

3-pod 仓库更新

4-pod 安装

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.

正如此处其他回复所述,由于 [firebase_crashlytics] 'Flutter/Flutter.h' file not found #5440

,Firebase Crashlytics 为我造成了这个错误

Firebase Crashlytics 的最后一个遗留版本是 0.4.0+1,其中不包含此修复程序。该修复包含在更高的空安全版本 (v2.0.0) 中。

然而,当我尝试使用修复了 bug 的 v2+ 版本时,我陷入了依赖地狱——依赖/子依赖之间无法解决的冲突。

因此,我创建了一个分支 (firebase_crashlytics_legacy) 以在遗留兼容版本中提供修复。

为了保持一致性,此分叉版本为 0.4.0+x。

希望它能帮助其他人轻松使用已修复此错误的旧版本。

原因可能是 Podfile conflict(例如:合并源代码后。v.v。)

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

然后按照这个命令重现 Podfile

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 小时。

我认为案例和解决方案会有所不同,但在这个 post 上尝试并失败每个案例有时仍然有帮助。 我的情况:

Repair pub cache

flutter pub cache repair

Run your project, this should show if any dependency those the pod obsolete with

flutter run

Get rid of your flutter build

flutter clean

rm ios/Podfile

Update the pod

pod repo update

Run your project again and hope it works out

flutter run

如果 Flutter permission_handler 相关

如果您刚刚将 permission_handler for flutter 集成到您的应用中,并按照说明修改 ios podfile 以添加所需的权限,您使用 the provided instructions.

可能会遇到此错误

我在修改 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 上所以弹出错误。 如果是这种情况,请阅读以下 link - Flutter simulator error: Command PhaseScriptExecution failed with a nonzero exit code

解决方案 1

  1. 将 ios 文件夹中的 运行ner 文件夹备份到安全的地方。

  2. 删除ios文件夹:

  1. 还是在根目录下,运行以下命令(包括space和句点):

flutter create .

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

  1. 将您之前备份的 运行ner 文件夹复制并粘贴到新的 ios 文件夹:

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

  1. 如果您的项目没有使用 Firebase,您可以忽略此步骤并继续下一步。否则,您需要重新添加 GoogleService-Info.plist 文件,方法是使用 Xcode 打开 ios 文件夹,右键单击 运行ner,选择将文件添加到“运行ner”,然后 select 与您的项目关联的 GoogleService-Info.plist 文件。

  1. 导航到您的 ios 文件夹和 运行:

pod install

你可能会陷入这样的境地:

# 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

然后 运行 你的项目。

方案二

有时,错误的原因很简单:您当前处于主频道而非稳定频道。根据 Flutter 维基:

主频道:当前的树尖,绝对最新的前沿版本。通常功能正常,但有时会意外损坏。 稳定频道:强烈建议将此频道用于所有生产应用程序版本。 你现在需要做的是切换到稳定频道:

flutter channel stable

然后:

flutter clean

最后:

flutter run

解决方案 3

如果以上两种方法都不能解决问题,您可以试试

  1. 转到 /ios 文件夹并删除以下内容:

Flutter/Flutter.podspec 文件 Pods 文件夹 Podfile.lock 文件

  1. 还是在ios文件夹中,执行以下命令:

pod install --repo-update

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

flutter clean

  1. 运行它:

flutter run

希望这有助于... 来源: 好人

如果你只在 运行 "flutter build ipa" 时遇到这个问题,请在 XCode 中确保你在 Runner 和 Pods 下的 Deployment Info 与 'platform' 中的匹配ios/Podfile.

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

我也遇到过这种情况。按照以下步骤为我解决问题后!

  1. 备份您ios文件夹中的运行ner文件夹到安全的地方。
  2. 删除 ios 文件夹:
  3. 进入root目录,运行执行以下命令:

flutter create .

  1. 完成上述步骤后,将创建 ios 文件夹。将之前备份的 运行ner 文件夹复制并粘贴到新的 ios 文件夹:
  2. 运行 android studio 或 VS code 中的项目
  3. 导航到您的 ios 文件夹和 运行:

pod install

  1. ios > Runner.xcworkspace 右键点击 Flutter > 打开 xCode 中的 iOS 模块

它会起作用:)

  1. 复制info.plist、Assets.xcassets和其他重要文件。
  2. 创建一个具有相同名称和包 ID 的新项目。
  3. 在您的旧项目中添加一个 iOS 项目并在其中添加第一步信息。
  4. 运行 项目。现在可以使用了。

这是我解决问题的方法:

  1. 运行 在您的终端上 flutter packages upgrade
  2. 在项目上创建 'iOS' 文件夹的备份。
  3. 从项目中删除 'iOS' 文件夹。
  4. 运行 flutter clean
  5. 运行 flutter pub get
  6. 运行 flutter create . 在你的项目根目录下
  7. 这将在存储库中创建一个 'ios' 文件夹。将 Info.plist、Podfile 和任何其他配置文件(如 GoogleServices.plist)从备份 'ios' 文件夹复制到新创建的 'ios' 文件夹。

再次尝试 运行 您的项目。现在应该可以工作了:)

就我而言,我已经解决了问题

Runner -->Build phases--->取消选中仅安装