Flutter 国内安装指南

适用于 macOS + FVM,目标是稳定安装指定 Flutter 版本,并尽量避开 Google 官方源访问慢的问题。

推荐镜像组合

实测后建议使用:

bash 复制代码
# Dart / Flutter 依赖包
export PUB_HOSTED_URL=https://pub.flutter-io.cn

# Flutter artifacts / Dart SDK / iOS tools 等二进制资源
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

# FVM 拉取 Flutter SDK git 仓库
export FVM_FLUTTER_URL=https://mirrors.bfsu.edu.cn/git/flutter-sdk.git

# FVM 缓存目录
export FVM_CACHE_PATH="$HOME/fvm"

# 让全局 flutter 指向 FVM 默认版本
export PATH="$HOME/fvm/default/bin:$HOME/.pub-cache/bin:$PATH"

把上面内容写入 ~/.zshrc,然后执行:

bash 复制代码
source ~/.zshrc

安装 FVM

如果还没安装 FVM:

bash 复制代码
brew tap leoafarias/fvm
brew install fvm

确认版本:

css 复制代码
fvm --version

配置 FVM

perl 复制代码
fvm config \
  --cache-path "$HOME/fvm" \
  --flutter-url https://mirrors.bfsu.edu.cn/git/flutter-sdk.git \
  --no-use-git-cache

说明:

  • --flutter-url 指定 FVM 拉 Flutter SDK 的 git 镜像。
  • --no-use-git-cache 避免首次创建共享 git cache 卡住;只装少量版本时更直接。

安装 Flutter

例如安装 3.35.4

复制代码
fvm install 3.35.4

安装成功后会看到类似:

arduino 复制代码
Flutter 3.35.4 • channel stable • https://mirrors.bfsu.edu.cn/git/flutter-sdk.git
Tools • Dart 3.9.2

设置项目版本

进入项目目录:

bash 复制代码
cd /path/to/your/flutter/project
fvm use 3.35.4

如果当前只有这一个版本,也可以设为全局默认:

csharp 复制代码
fvm global 3.35.4

确认:

css 复制代码
fvm list
flutter --version
fvm flutter --version

iOS 模拟器启动注意

如果 simctl 不可用,通常是 Xcode 没被选中:

csharp 复制代码
xcode-select -p

如果输出是:

复制代码
/Library/Developer/CommandLineTools

可以临时使用完整 Xcode:

javascript 复制代码
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

然后启动模拟器并运行:

arduino 复制代码
fvm flutter devices
fvm flutter run -d <device-id>

清理建议

正常安装后,$HOME/fvm/versions/<version> 占用 2GB+ 是正常的,包含:

  • Flutter SDK git 仓库
  • Dart SDK
  • iOS/macOS artifacts
  • Flutter tools

不要随便清 bin/cache,否则下次运行会重新下载。

可以安全清理的通常是:

bash 复制代码
rm -f "$HOME/fvm/cache.git.lock"
rm -rf "$HOME/fvm/cache.git.tmp."*

如果确认没有正在运行的 fvm install,这些是中断安装留下的临时文件。

相关推荐
萧鼎1 小时前
Python 高性能Web框架神器 FastAPI:自动生成API文、基于Pydant、异步请求处理全搞定
前端·python·fastapi
IT_陈寒2 小时前
Redis误用keys命令把生产环境搞崩了,血的教训
前端·人工智能·后端
计算机魔术师2 小时前
5000亿估值冲刺科创板,DeepSeek 为何急着上市?
前端
我血条子呢2 小时前
前端解析word方案
前端·word
kyriewen2 小时前
我用 AI 写完一个需求后才发现,最难的不是 prompt,而是验收
前端·程序员·ai编程
申行2 小时前
Vue 3 + DYMO Connect Framework 实战:从标签模板到打印服务的完整实现
前端
两只羊ovo2 小时前
Vue 3 + DeepSeek 流式输出实战:从“干等”到“打字机”体验
前端·vue.js
Yeyu2 小时前
车载多 App 同屏渲染(二):SurfaceControlViewHost 跨进程
前端
樊小肆2 小时前
离谱,每轮请求 25% 的 token,竟在重发模型想完就扔的内心独白
前端·人工智能·agent
小妖现世3 小时前
前端面试复习笔记:React 高频题 + JS 手写题
前端