找不到Flutter.h错误

trv*_*rvo 0 xcode ios dart flutter

从几天前开始,我就失去了为iOS构建Flutter应用程序的能力。我将iPad更新为11.4,这迫使我将xCode更新为9.4,而且我认为还添加了Flutter的新版本。我以无限的智慧更新了所有内容,现在再也无法测试我的项目了。

随着截止日期的临近,我正在寻找有关如何再次搬家的建议。我对Apple产品不那么熟悉,所以还真的不了解我对xCode等的了解。

这是一个全新的“ FLUTTER CREATE测试项目”项目,没有任何更改。

FLUTTER RUN日志:

Launching lib/main.dart on iPad Pro (12.9-inch) (2nd generation) in debug mode...
Starting Xcode build...
Xcode build done.
Failed to build iOS app
Error output from Xcode build:
?
    ** BUILD FAILED **

Xcode's output:
?
    === BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Debug ===
    cp: /Users/trevburley/FlutterSDK/flutter/bin/cache/artifacts/engine/ios/Flutter.framework: No such file or directory
    find: /Users/trevburley/IdeaProjects/testproject/ios/Flutter/Flutter.framework: No such file or directory
    Project /Users/trevburley/IdeaProjects/testproject built and packaged successfully.
    Command /bin/sh emitted errors but did not return a nonzero exit code to indicate failure
    In file included from /Users/trevburley/IdeaProjects/testproject/ios/Runner/GeneratedPluginRegistrant.m:5:
    /Users/trevburley/IdeaProjects/testproject/ios/Runner/GeneratedPluginRegistrant.h:8:9: fatal error: 'Flutter/Flutter.h' file not found
    #import <Flutter/Flutter.h>
            ^~~~~~~~~~~~~~~~~~~
    1 error generated.
Could not build the application for the simulator.
Error launching application on iPad Pro (12.9-inch) (2nd generation).
Run Code Online (Sandbox Code Playgroud)

和冗长的Flutter医生:

Trevs-MBP:testproject trevburley$ flutter doctor -v
[?] Flutter (Channel beta, v0.4.4, on Mac OS X 10.13.5 17F77, locale en-GB)
    • Flutter version 0.4.4 at /Users/trevburley/FlutterSDK/flutter
    • Framework revision f9bb4289e9 (3 weeks ago), 2018-05-11 21:44:54 -0700
    • Engine revision 06afdfe54e
    • Dart version 2.0.0-dev.54.0.flutter-46ab040e58

[?] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/trevburley/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[?] iOS toolchain - develop for iOS devices (Xcode 9.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4, Build version 9F1027a
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[?] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 25.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[?] IntelliJ IDEA Community Edition (version 2018.1.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 25.0.2
    • Dart plugin version 181.4892.1

[?] VS Code (version 1.23.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Dart Code extension version 2.13.0

[?] Connected devices (1 available)
    • iPad Pro (12.9-inch) (2nd generation) • D8D24435-C465-4403-B74F-E8DD32DDD30A • ios • iOS 11.4 (simulator)

• No issues found!
Run Code Online (Sandbox Code Playgroud)

Igo*_*din 56

我猜这个问题是由中断 cocoapods 安装引起的。这是修复:

  • 从你的项目中删除ios/Flutter/Flutter.framework
  • pod install在ios目录下运行。应生成 Flutter.framework,包括Headers/Flutter.h文件
  • 运行构建。现在一切都应该正常工作

虽然切换到不同的 Flutter 可能会奏效,但它并不能真正解决缓存损坏的问题。请记住,Flutter 的 master 和 beta 分支不适合生产版本。

  • 就我而言,我什至没有 Flutter.framework,我只是运行 pod install 并且它起作用了,非常感谢! (4认同)
  • 这个解决方案对我有用,并且比我发现的许多其他建议的解决方案更容易 (3认同)
  • 这个解决方案对我有用(Flutter Channel 稳定版,v1.17.1,在 Mac OS X 10.15.3 上) (3认同)
  • 这就像一个魅力。我尝试了本页中的所有答案,但只有这个有效。 (2认同)
  • 这应该被标记为正确答案!多谢! (2认同)

Tah*_*lik 8

对于任何来到这里的人来说都是 2021

用这个替换你的 pod 文件

platform :ios, '12.0'

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

def flutter_install_ios_plugin_pods(ios_application_path = nil)
  ios_application_path ||= File.dirname(defined_in_file.realpath) if self.respond_to?(:defined_in_file)
  raise 'Could not find iOS application path' unless ios_application_path

  symlink_dir = File.expand_path('.symlinks', ios_application_path)
  system('rm', '-rf', symlink_dir) # Avoid the complication of dependencies like FileUtils.

  symlink_plugins_dir = File.expand_path('plugins', symlink_dir)
  system('mkdir', '-p', symlink_plugins_dir)

  plugins_file = File.join(ios_application_path, '..', '.flutter-plugins-dependencies')
  plugin_pods = flutter_parse_plugins_file(plugins_file)
  plugin_pods.each do |plugin_hash|
    plugin_name = plugin_hash['name']
    plugin_path = plugin_hash['path']
    if (plugin_name && plugin_path)
      symlink = File.join(symlink_plugins_dir, plugin_name)
      File.symlink(plugin_path, symlink)

      if plugin_name == 'flutter_ffmpeg'
          pod 'flutter_ffmpeg/full-lts', :path => File.join('.symlinks', 'plugins', plugin_name, 'ios')
      else
          pod plugin_name, :path => File.join('.symlinks', 'plugins', plugin_name, 'ios')
      end
    end
  end
end

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
Run Code Online (Sandbox Code Playgroud)

并运行

flutter pub get
cd ios
pod install
Run Code Online (Sandbox Code Playgroud)

编辑

如果它不起作用那么

pod update
flutter clean
flutter run
Run Code Online (Sandbox Code Playgroud)

@Credit Latalus

  • 哈哈,告诉人们用一揽子复制粘贴替换他们的整个 Podfile,不是吗,酋长 (9认同)
  • 为我工作! (2认同)
  • 这对我有用 (2认同)
  • 这个有效,完全复制了一个 pod 文件 - 好/坏我们总是可以检查代码,对吗?所以没有问题。:-) (2认同)

trv*_*rvo 5

我整天都在寻找答案,最后找到了可行的修复程序,请在您的终端中运行该修复程序:

颤振通道主控

扑扑干净

扑动

我认为这只是一个扑朔迷离的错误/不兼容,尚未出现在主要渠道上。

  • 这个答案2年后,问题仍然出现。**不要**在生产中使用 Flutter 的主通道。 (4认同)

can*_*ler 0

当我尝试在我的 flutter 项目中添加共享按钮时遇到了这个问题。

我通过以下步骤解决它:

  1. 检查你的pubspec.yaml文件。
  2. 您应该确定您的 pod 文件和 cocoapods。为此,您应该在终端中执行以下步骤:无法安装 Cocoapods - 在项目目录中找不到 podfile