Flutter应用无法在iOS设备及模拟器运行,编译报错求助
Flutter iOS构建失败问题
问题背景
应用在Android设备及模拟器运行正常,但iOS设备和模拟器均无法构建,核心报错为Firebase模块重定义、Flutter模块无法构建等。
pubspec.yaml内容
environment: sdk: ">=2.17.5 <3.0.0" dependencies: flutter: sdk: flutter dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 curved_navigation_bar: firebase_core: firebase_auth: cloud_firestore: webview_flutter_plus: audioplayers: ^0.20.1 marquee: ^2.2.3 carousel_slider: page_transition: swipe_deck: custom_navigator: ^0.3.0 provider: ^6.0.3 flutter_neumorphic: ^3.2.0 path_provider: flutter_downloader: ^1.7.0 dio: permission_handler: ^8.1.6
报错信息
Failed to build iOS app Error output from Xcode build: ↳ 2022-08-21 22:21:17.512 xcodebuild[97752:28385663] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore 2022-08-21 22:21:17.513 xcodebuild[97752:28385663] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore ** BUILD FAILED **
Error (Xcode): 重定义模块 'Firebase'
/Users/aresrana/StudioProjects/divya/ios/Pods/Firebase/CoreOnly/Sources/module.modulemap:0:7
Error (Xcode): 无法构建模块 'Flutter' /Users/aresrana/StudioProjects/divya/ios/Runner/GeneratedPluginRegistrant.h:9:8 Error (Xcode): 无法为桥接头文件 '/Users/aresrana/StudioProjects/divya/ios/Runner/Runner-Bridging-Header.h' 生成预编译头 '/Users/aresrana/Library/Developer/Xcode/DerivedData/Runner-bhnsvmbmirzxibanpfwznxueyccp/Build/Intermediates.noindex/PrecompiledHeaders/Runner-Bridging-Header-swift_Q1P2N8WP645E-clang_8RMZX2ZNX0IS.pch'
解决方案
1. 修复pubspec.yaml重复依赖
pubspec.yaml中重复定义了dependencies节点,合并为一个并补充缺失的依赖版本号(避免依赖解析冲突):
environment: sdk: ">=2.17.5 <3.0.0" dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 curved_navigation_bar: ^1.0.3 firebase_core: ^1.24.0 firebase_auth: ^3.10.0 cloud_firestore: ^3.5.0 webview_flutter_plus: ^0.3.0 audioplayers: ^0.20.1 marquee: ^2.2.3 carousel_slider: ^4.1.1 page_transition: ^2.0.9 swipe_deck: ^0.1.0 custom_navigator: ^0.3.0 provider: ^6.0.3 flutter_neumorphic: ^3.2.0 path_provider: ^2.0.11 flutter_downloader: ^1.7.0 dio: ^4.0.6 permission_handler: ^8.1.6
2. 清理iOS构建缓存
执行以下命令彻底清理缓存并重新安装依赖:
flutter clean cd ios rm -rf Pods Podfile.lock pod install --repo-update cd ..
3. 修复Firebase模块重定义问题
如果缓存清理无效,修改iOS目录下的Podfile,在target 'Runner' do...end代码块内添加以下配置,强制Firebase依赖启用模块化头文件:
pod 'Firebase/CoreOnly', :modular_headers => true pod 'FirebaseAuth', :modular_headers => true pod 'CloudFirestore', :modular_headers => true
添加后重新执行pod install。
4. 检查桥接文件
打开Runner-Bridging-Header.h,确保没有重复引入Firebase或Flutter相关头文件,仅保留必要的原生代码引用,避免冲突。
5. 更新开发工具
确保Xcode为最新稳定版,同时更新Flutter到对应稳定版本:
flutter upgrade
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

