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,这些是中断安装留下的临时文件。

相关推荐
大龄秃头程序员15 分钟前
iOS Method Swizzling 的工程化实践:如何处理多重交换与第三方冲突
前端
liangshanbo121519 分钟前
Webpack 文件指纹面试题整理
前端·webpack·node.js
xieter28 分钟前
【技术精选】Node.js 核心事件循环机制与异步 I/O 深度剖析 (2026-10-02)
前端·javascript
计算机魔术师1 小时前
Ethan Mollick 谈点与群:智能体自组织为何让管理假设失效
前端
故七月2 小时前
GEO 信源评估体系:如何判断一条网页信源能否被大模型采信
前端·网络·人工智能
liangshanbo12152 小时前
Webpack 常见 Plugin 面试题
前端·webpack·node.js
xxwl5852 小时前
vue3的入门学习
前端·vue.js·学习
用户847172102842 小时前
.shot 文件格式规范
前端·后端
web打印社区2 小时前
政务办事大厅:叫号小票、办理回执网页怎么静默出纸
前端·javascript·vue.js·pdf·html·政务
C++ 老炮儿的技术栈2 小时前
有符号变量与无符号变量的区别
服务器·开发语言·前端·数据结构·c++·算法·c