Flutter编译Simulator应用时Xcode无法识别包问题求助
解决Mac Silicon设备上Flutter项目Xcode编译失败问题
问题分析
你遇到的NotificationAppLaunchDetails.payload未定义、_PaymentScreenState.WebView未定义等错误,核心是项目依赖版本与Flutter 3.3.10不兼容,或是本地编译缓存、架构适配存在问题。
修复步骤
1. 排查并调整依赖版本
- 打开项目根目录的
pubspec.yaml文件:- 针对推送相关错误:检查
firebase_messaging或同类推送依赖的版本,选择适配Flutter 3.3.10的稳定版(可查看依赖的官方版本兼容说明)。 - 针对WebView错误:检查
webview_flutter的版本,Flutter 3.3.10建议搭配3.0.x系列的webview_flutter版本。
- 针对推送相关错误:检查
- 修改后执行以下命令:
flutter pub get cd ios arch -x86_64 pod deintegrate arch -x86_64 pod install cd .. flutter clean
2. 清理Xcode缓存
- 关闭Xcode,删除以下目录:
~/Library/Developer/Xcode/DerivedData- 项目根目录下的
ios/build文件夹
- 重新打开项目,执行
flutter run
3. 调整Xcode架构设置
- 打开项目
ios目录下的Runner.xcworkspace:- 选中
Runnertarget,进入Build Settings - 找到
Architectures,设置为Standard Architectures (arm64, x86_64) - 检查
Excluded Architectures,确保Debug模式下不包含当前模拟器对应的架构(比如模拟器无需排除arm64)
- 选中
4. 修复废弃API调用
- 查看报错代码:
NotificationAppLaunchDetails.payload若已废弃,替换为类内新的属性(比如notification字段下的对应内容)WebView相关错误若因API变更导致,比如webview_flutter新版本改用WebViewWidget,则同步修改代码实现,并确保正确导入webview_flutter包
内容的提问来源于stack exchange,提问作者Abdelrahman
相关产品推荐
相关产品推荐

