M1 Pro Mac上Flutter iOS模拟器启动失败:'WebRTC/WebRTC.h'文件未找到
解决Flutter iOS模拟器构建失败(WebRTC头文件未找到)的问题
你遇到的核心问题是旧版本flutter_webrtc对M1 MacBook Pro的Apple Silicon架构支持不完善,导致构建时无法找到WebRTC的头文件。下面是几个针对性的解决方案,按顺序尝试即可:
1. 升级flutter_webrtc到兼容M1的版本
你当前使用的flutter_webrtc: 0.7.1是较旧的版本,对M1架构的适配性很差。打开项目根目录的pubspec.yaml,将依赖项更新到兼容Flutter 2.5.3的稳定版本(建议至少^0.9.15):
dependencies: flutter_webrtc: ^0.9.15
执行命令更新依赖:
flutter pub get
2. 修改Podfile适配模拟器架构
M1模拟器默认使用arm64架构,但旧版WebRTC依赖仅支持x86_64。打开ios/Podfile,在文件末尾添加以下配置:
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) # 为iOS模拟器指定x86_64架构 target.build_configurations.each do |config| config.build_settings['ARCHS[sdk=iphonesimulator*]'] = 'x86_64' end end end
3. 彻底清理并重新构建项目
执行以下命令清除缓存和旧依赖,重新拉取适配M1的资源:
flutter clean rm ios/Podfile.lock rm -rf ios/Pods cd ios pod repo update pod install cd .. flutter run
如果上述命令仍报错,可以尝试用Rosetta运行终端:右键点击终端应用 → 「显示简介」→ 勾选「使用Rosetta打开」,再重新执行构建命令。
4. 检查Xcode基础配置
确保你的Xcode版本支持iOS 15.0,且命令行工具配置正确:
xcode-select --install sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
也可以打开Xcode的项目ios目录,在Build Settings的「Header Search Paths」中添加$(inherited)和${PODS_ROOT}/WebRTC/include,强制指定头文件路径。
内容的提问来源于stack exchange,提问作者Jan Hecker
相关产品推荐
相关产品推荐

