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

使用FVM指定Flutter版本后iOS编译提示Dart语言版本过高求助

解决方案

你的核心问题是FVM指定的Flutter版本未在终端和iOS编译流程中真正生效,导致iOS编译时调用了全局的Flutter 3.10.6(对应Dart 3.0),和你配置的Dart 3.1+约束冲突。以下是针对性解决步骤:

1. 强制终端使用项目的FVM版本

  • 进入项目根目录,执行以下命令确认当前flutter命令的来源:
    which flutter
    
    如果输出不是项目内的.fvm/flutter_sdk/bin/flutter,说明终端仍在调用全局版本,执行:
    source .fvm/flutter_sdk/bin/activate
    
    再次执行flutter doctor,此时应该显示项目指定的3.15.0-15.2.pre版本。

2. 彻底清理并重新构建iOS依赖

  • 先清理Flutter缓存:
    fvm flutter clean
    rm -rf .dart_tool
    
  • 进入iOS目录清理Pod缓存:
    cd ios
    pod deintegrate
    rm -rf Pods Podfile.lock
    cd ..
    
  • 重新拉取依赖并安装Pods:
    fvm flutter pub get
    cd ios
    pod install
    cd ..
    

3. 修正pubspec.yaml的Dart版本约束

Flutter 3.15.x对应的Dart版本是3.2.x,把约束调整为更精准的范围,避免版本匹配歧义:

environment:
  sdk: '>=3.2.0 <4.0.0'

4. 使用FVM命令启动iOS项目

不要直接在Xcode中点击运行,而是在项目根目录执行:

fvm flutter run -d ios

确保编译流程完全使用FVM指定的Flutter版本。

5. 配置FVM自动切换(可选)

为了避免每次都手动激活,配置终端自动切换FVM版本:

  • 如果你用zsh,编辑~/.zshrc,添加:
    eval "$(fvm env --shell zsh)"
    
  • 如果你用bash,编辑~/.bashrc,添加:
    eval "$(fvm env --shell bash)"
    
  • 执行source ~/.zshrc(或source ~/.bashrc)生效,之后进入项目目录会自动切换到指定的Flutter版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:35:14