几天前我就失去了为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).
和详细的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!
答案 0 :(得分:44)
我猜这个问题是由于中断cocoapods安装造成的。解决方法:
pod install
。应该生成Flutter.framework,包括 Headers / Flutter.h 文件虽然切换到其他Flutter可能会起作用,但实际上并不能解决缓存中断问题。请记住,Flutter的主分支和Beta分支不适合正式发布。
答案 1 :(得分:6)
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
flutter pub get
cd ios
pod install
如果它不起作用
pod update
flutter clean
flutter run
@Credit Latalus
答案 2 :(得分:4)
不用担心 - 我一整天都在寻找答案,并最终找到了一个有效的解决方案 - &#39;颤振频道大师&#39;然后是'颤动清洁&#39;并且&#39; flutter run&#39;
我认为这只是一个颤抖的错误/不兼容性,但还没有进入主要渠道。
答案 3 :(得分:3)
这样做
$rm ios/Flutter/Flutter.podspec
$flutter clean
然后运行
flutter pub get
和
pod install
答案 4 :(得分:2)
我也遇到了同样的问题,花了大约 2 天的时间通过在互联网上尝试多种解决方案来解决它,但最终的解决方案对我有用: Flutter fatal error: ‘Flutter/Flutter.h’ file not found
答案 5 :(得分:1)
对我有用的东西正在改变:
#include "Flutter.h"
到
#include <Flutter/Flutter.h>
答案 6 :(得分:0)
几个星期前我遇到了同样的问题,我刚刚删除了flutter文件夹并从同一个存储库中克隆它,它对我有效。
答案 7 :(得分:0)
当我尝试在flutter项目中添加共享按钮时遇到了这个问题。我为我解决。您应该按照以下步骤操作:
答案 8 :(得分:0)
flutter 运行 [new project],然后将 iOS 文件夹替换为现有项目。 (您需要备份现有项目的 iOS 文件夹。)
将现有项目中的 ios/Runner 替换为新的 iOS 文件夹。
Xcode 设置与现有项目相同。
如果出现iOS版本问题,修改Podfile。
deployment_target = '11.0'
post_install do |installer|
installer.generated_projects.each do |project|
project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
end
end
project.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
end
end
end
然后,cd ios,pod install。
颤动运行。