You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Flutter 3.7.0后iOS Simulator构建失败求助

解决方案:Flutter 3.7.0升级后iOS构建因ModalBottomSheetRoute命名冲突报错

问题原因

Flutter 3.7.0版本在官方material库中新增了ModalBottomSheetRoute类,而你使用的modal_bottom_sheet:2.1.2包内部也定义了同名类,导致编译时命名冲突。

解决步骤

方案1:升级modal_bottom_sheet包(优先推荐)

旧版本包未适配Flutter 3.7.0的API变更,升级到兼容版本即可解决:

  • 打开项目根目录的pubspec.yaml文件,找到modal_bottom_sheet依赖项,将版本号更新为^3.0.0及以上(该版本已适配命名冲突问题):
    dependencies:
      modal_bottom_sheet: ^3.0.0
    
  • 执行命令更新依赖:
    flutter pub get
    
  • 清理项目缓存并重新构建:
    flutter clean
    cd ios && pod install && cd ..
    flutter run
    

方案2:修改导入别名(临时应急方案)

若暂时无法升级包,可通过导入别名区分两个同名类:

  • 找到项目中所有导入modal_bottom_sheet的文件,为其添加别名:
    import 'package:modal_bottom_sheet/modal_bottom_sheet.dart' as customModal;
    
  • 将代码中使用该包的ModalBottomSheetRoute替换为customModal.ModalBottomSheetRoute:
    // 原代码
    Navigator.of(context).push(ModalBottomSheetRoute(...));
    // 修改后
    Navigator.of(context).push(customModal.ModalBottomSheetRoute(...));
    

注意:此方案需要修改所有相关引用,且无法解决包内部文件的冲突(报错来自包内部),仅作为临时应急方案,推荐优先使用方案1。

方案3:彻底清理缓存(配合前两种方案使用)

如果执行前两种方案后仍报错,可彻底清理缓存:

  • 清理Flutter缓存:
    flutter clean
    
  • 清理iOS端CocoaPods缓存:
    cd ios
    rm -rf Podfile.lock Pods
    pod deintegrate
    pod install
    cd ..
    
  • 重新运行项目:
    flutter run
    

内容的提问来源于stack exchange,提问作者HappyCoding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:55:22