Raf*_*.C. 60 ios cocoapods flutter flutter-ios flutter-ios-build
我不知道为什么,但我无法在我的新 Macbook 中构建或运行该应用程序,我在另一台 Mac 或我的 Windows 计算机上运行相同的文件夹并完美运行。在这里,当我运行 flutter clean 时,我必须运行 pub get 来解决问题,这正常吗?
如果我新建一个项目,我可以正常运行flutter run,所以我想可能那里我认为可能与插件有关。
你知道我该如何解决这个问题吗?谢谢
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.
Run Code Online (Sandbox Code Playgroud)
Raf*_*.C. 55
我找到了解决办法!
备份ios/Runner文件夹。
删除ios文件夹。
运行flutter create (your project name)。在您拥有项目的上一个文件夹中(cd users/user/"projects_folder")(这将重新创建您的ios文件夹)。
将您的 Runner 备份粘贴到ios文件夹中(到项目中)。
打开Runner.xcworkspace(进入ios文件夹),然后检查版本、捆绑 ID 和所有信息。
(如果您有 Firebase,则必须再次将 Google 复制并粘贴Service-Info.Plist到Runner文件夹中(始终通过 Xcode)(如果您手动执行此操作,则不起作用)。
最后,flutter run应该工作!
如果flutter run失败:
cd iospod installcd ..flutter runPar*_*iya 33
这是由于从master/dev切换回beta/stable 引起的。
这里总结了两种解决方案
这是 flutter 和 pod install 的错误。Flutter在做pod install安装依赖时,Flutter中框架文件同步导致框架文件丢失。一旦卡主丢失一次,只需执行 pod install 命令即可。可以安装用户指定的依赖,但不能在 Flutter 中同步框架文件
因为ios/Flutter/Flutter.podspecCocoaPods 链接逻辑被移到了 flutter 工具中。但是,当您切换回 beta/stable 时,那个伪造的 podspec 仍然存在,但 flutter 工具链接逻辑已恢复。
1 解决方案
以下命令修复了此行为:
cd ios 用于转到 flutter 应用程序的 iOS 目录pod deintegraterm Flutter/Flutter.podspecrm podfile.lockflutter cleanflutter run2 解决方案
如果上述解决方案不起作用,请尝试将频道从 Master 切换到稳定版。
要切换频道,请在终端中运行:
flutter channel stable
flutter clean
flutter run
Edg*_*zar 23
编辑:刚刚为 Flutter 2 发布了新版本的 Crashlytics。只需升级您的 pubspec.yml:
firebase_crashlytics: ^2.0.0
Run Code Online (Sandbox Code Playgroud)
下面是我以前的回答。
对于 Flutter 2,您可以按照此 GitHub 评论中的说明进行操作。粘贴的文字如下:
Flutter 2.0.4 的解决方法是使用来自 git 而不是 pub.dev 的 firebase_crashlytics。这似乎有效(参考当前最新的提交):
Run Code Online (Sandbox Code Playgroud)firebase_crashlytics: git: url: git://github.com/FirebaseExtended/flutterfire.git path: packages/firebase_crashlytics/firebase_crashlytics ref: 200b8ca8f1c452e4249fb791e53cc55e786ac768
小智 17
解决方案1
\n将 ios 文件夹中的 Runner 文件夹备份到安全位置。
\n删除ios文件夹:
\nflutter create .
您的项目中将生成一个新的 ios 文件夹。
\n将出现一个对话框。单击“替换”按钮继续。
\npod install
你可能会陷入这样的境地:
\n\n# Uncomment this line to define a global platform for your project\nplatform :ios, \'11.0\'
现在再次运行 pod install,它应该可以工作(可能会出现一些警告,但我们不关心它们)。
\ncd ..\nflutter run
如果仍然出现错误,请执行以下命令清除 Flutter\xe2\x80\x99s 构建缓存:
\nflutter clean
并更新 .pub-cache 中的依赖项:
\nflutter pub cache repair
然后再次运行您的项目。
\n解决方案2
\n有时,错误是由一个简单的原因引起的:您当前位于主通道而不是稳定通道。根据 Flutter 维基:
\n主通道:当前的树尖,绝对最新的前沿构建。通常功能正常,但有时会意外损坏。\n稳定通道:强烈建议将此通道用于所有生产应用版本。\n您现在需要做的是切换到稳定通道:
\nflutter channel stable
然后:
\nflutter clean
最后:
\nflutter run
解决方案3
\n如果上面的两种方法都不能解决问题,你可以尝试一下。
\nFlutter/Flutter.podspec 文件\nPods 文件夹\nPodfile.lock 文件
\npod install --repo-update
flutter clean
flutter run
希望这会有所帮助......信用: A Goodman
\np0w*_*0wl 14
这个解决方案对我有用:
从以下位置更改 PodFile:
Run Code Online (Sandbox Code Playgroud)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到
Run Code Online (Sandbox Code Playgroud)post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) end end
Mat*_*out 10
如果您刚刚将flutter的permission_handler集成到您的应用程序中,并按照说明修改ios podfile以添加所需的权限,则使用提供的说明可能会遇到此错误。
fatal error: 'Flutter/Flutter.h' file not found修改 podfile 后我开始收到错误。
解决方案是更改 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
Run Code Online (Sandbox Code Playgroud)
可能会发生特定的 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
Run Code Online (Sandbox Code Playgroud)
请访问此问题以供参考。
特定 3rd 方库的 .podspec 应具有:
s.dependency 'Flutter'
Run Code Online (Sandbox Code Playgroud)
在
Pod::Spec.new do |s|
...
Run Code Online (Sandbox Code Playgroud)
然后,pod install在ios目录中调用,以反映更改。
最后,安排您的构建。
我尝试了上述所有解决方案,但最终重新创建了 ios 目录。
rm -rf ios
flutter create -i swift .
Run Code Online (Sandbox Code Playgroud)
注意:执行上述步骤将丢失所有本机 ios 设置。就我而言,我在执行此操作的演示项目中遇到了此错误。
原因可能是Podfile conflict。(例如:合并源代码.vv后)
这是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
Run Code Online (Sandbox Code Playgroud)
然后按照以下命令重现 Podfile
rm ios/Podfile
Run Code Online (Sandbox Code Playgroud)
最后,您的项目已准备就绪,可以开始使用了
flutter run
Run Code Online (Sandbox Code Playgroud)
对我有用的东西:
我的 pubspec 中的一些依赖项已经过时(具体来说,我使用的是 crashalytics 1.0.0 和 Flutter 2.0.5,它们不兼容,因此抛出了这个错误)。
将 crashalytics 升级到 2.0.0 为我修复了它。
我会查看抛出此错误的任何包,并查看是否有可用的升级。如果这不起作用,请尝试降级您的 flutter 版本。
还有另一种方法...
如果您在使用Firebase的Flutter项目中偶然发现此问题,并且上述步骤均不起作用,请尝试以下操作:
flutter create <projectname>(即上面的一个文件夹)。这将重新创建 ios 文件夹。pod init也不打电话pod install。也保持AppDelegate 不变!相反,只需调用flutter run,它会处理 Pod 的设置。ios/Podfile:取消注释该行platform :ios, '8'并设置 iOS 版本(在撰写本文时 12.1 似乎很合适)。PROJECT -> Runner -> Deployment Target -> iOS Deployment Target在 Xcode 中的和 (也在 Xcode 中)下设置相同的版本TARGETS -> Runner -> Deployment Info。flutter clean并flutter run运气好的话,你就能让它恢复运行了。
这是我解决问题的方法:
flutter packages upgradeflutter cleanflutter pub getflutter create .在您的项目根目录上运行尝试再次运行您的项目。现在应该可以工作了:)
| 归档时间: |
|
| 查看次数: |
46943 次 |
| 最近记录: |