FVM(Flutter Version Manager)是一个专门为 Flutter 应用开发设计的版本管理工具。它允许开发者在同一台机器上安装和管理多个 Flutter 版本,解决了团队协作和项目迁移时因 Flutter 版本差异导致的兼容性问题。它允许开发者在不同的 Flutter 项目之间快速切换版本,而无需每次都下载和配置新的 Flutter SDK
官方网站: fvm.app[1]
fvm list 清楚本次缓存目录后
就在这个目录执行下面的代码
fvm list
Cache directory: /Users/jianguo/fvm/versions
Directory Size: 0 B
No SDKs have been installed yet. Flutter. SDKs
installed outside of fvm will not be displayed.
没有目录则创建。
mkdir /Users/jianguo/fvm/versions
使用 Homebrew(macOS)
brew install fvm
使用 Chocolatey(Windows)
choco install fvm
使用包管理器(Linux)
sudo snap install fvm
从源码安装克隆 FVM 仓库并手动安装:
git clone https://github.com/leoafarias/fvm.git
cd fvm
dart pub global activate --source path .
安装完成后,初始化 FVM:
fvm doctor
该命令会检查 FVM 的配置状态,并提示是否需要更新或修复。
运行以下命令更新 FVM:
dart pub global activate fvm
使用特定版本 3.22.1
git clone --branch 3.22.0-ohos git@gitcode.com:openharmony-sig/flutter_flutter.git custom_3.22.1
使用特定版本 3.7.12
git clone --branch br_3.7.12-ohos-1.1.0 git@gitcode.com:openharmony-sig/flutter_flutter.git custom_3.7.12
jianguo@nutpi versions % fvm list
Cache directory: /Users/jianguo/fvm/versions
Directory Size: 1.87 GB
┌───────────────┬─────────┬─────────────────┬──────────────┬──────────────┬────────┬───────┐
│ Version │ Channel │ Flutter Version │ Dart Version │ Release Date │ Global │ Local │
├───────────────┼─────────┼─────────────────┼──────────────┼──────────────┼────────┼───────┤
│ custom_3.22.1 │ │ Need setup │ │ │ │ │
└───────────────┴─────────┴─────────────────┴──────────────┴──────────────┴────────┴───────┘
jianguo@nutpi versions % fvm use │ custom_3.22.1
Creating local mirror...
^C
jianguo@nutpi versions % fvm use custom_3.22.1
[WARN] Not checking for version mismatch as custom version is being used.
No pubspec.yaml detected in this directory
✔ Would you like to continue? · yes Downloading Darwin arm64 Dart SDK from Flutter engine 2d7bb04571c712838a076cd26a74455d6a91d42e...
dart-sdk-url: https://flutter-ohos.obs.cn-south-1.myhuaweicloud.com/flutter_infra_release/flutter/2d7bb04571c712838a076cd26a74455d6a91d42e/dart-sdk-darwin-arm64.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 122M 100 122M 0 0 1548k 0 0:01:21 0:01:21 --:--:-- 1416k
Building flutter tool...
Resolving dependencies... (1.4s)
Downloading packages...
Got dependencies.
Flutter 3.22.1-ohos-1.0.0 • channel [user-branch] • git@gitcode.com:openharmony-sig/flutter_flutter.git
Framework • revision b4fecf02f5 (4 days ago) • 2025-05-08 11:47:56 +0800
Engine • revision f6344b75dc
Tools • Dart 3.4.0 • DevTools 2.34.1
下载完 sdk 后
fvm use custom_3.22.1,这样的话,重新运行 fvm list 的时候,就如下面所示。
jianguo@nutpi versions % fvm list
Cache directory: /Users/jianguo/fvm/versions
Directory Size: 2.27 GB
┌───────────────┬─────────┬───────────────────┬──────────────┬──────────────┬────────┬───────┐
│ Version │ Channel │ Flutter Version │ Dart Version │ Release Date │ Global │ Local │
├───────────────┼─────────┼───────────────────┼──────────────┼──────────────┼────────┼───────┤
│ custom_3.22.1 │ │ 3.22.1-ohos-1.0.0 │ 3.4.0 │ │ │ │
└───────────────┴─────────┴───────────────────┴──────────────┴──────────────┴────────┴───────┘
image-20250512093850169
SDK 下载到缓存目录以后, 可用 FVM 来创建项目
示例:
# 使用自定义 SDK
# 由于此时项目目录是空的,可能会提示是否继续, 一路 yes 即可
fvm use custom_3.22.1
# 创建项目, 不要忽略最后的那个 "." 哦
fvm flutter create --platforms=ohos --project-name demo .
创建以后, 目录中会出现 .fvm
(软链接到 SDK 实际位置) 和 .fvmrc
(配置文件)
执行 tree -L 2 .fvm
(仅参考)
.fvm
├── flutter_sdk -> /Users/jianguo/fvm/versions/custom_3.22.1
├── fvm_config.json
├── release
├── version
└── versions
└── custom_3.22.1 -> /Users/jianguo/fvm/versions/custom_3.22.1
4 directories, 3 files
可发现, 其中 .fvm/flutter_sdk
和 .fvm/versions
下的文件均软链接到 SDK 实际缓存位置, 复用
在项目目录下的 .vscode/settings.json
里配置 SDK 位置即可,示例如下
{
"dart.flutterSdkPath": ".fvm/versions/custom_3.22.1", # 也可以是 `.fvm/flutter_sdk`
"dart.addSdkToTerminalPath": true, # 表示将当前 SDK 添加到 VSCode 集成终端的 PATH
"dart.env": {
"PUB_HOSTED_URL": "https://pub.flutter-io.cn" # 根据情况设置(国内推荐)
},
}
FVM 是 Flutter 开发者不可或缺的工具,它极大简化了 Flutter 版本管理的复杂性,提高了团队协作效率。无论是个人开发者还是大型团队,FVM 都能提供强大的支持。如果你还未使用 FVM,现在就是开始的最佳时机!
希望这篇博客能帮助你轻松掌握 FVM 的使用方法,让 Flutter 开发变得更加高效和顺畅。
参考资料
[1]
fvm.app: https://fvm.app/
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有