flutter 管理工具fvm
FVM(Flutter Version Management)它是一款用于管理多个 Flutter SDK 版本的强大工具,特别适合在需要切换不同 Flutter 版本的项目中工作。
为什么要使用 FVM?
- 多版本管理:同时安装和使用多个 Flutter SDK 版本。
- 项目隔离:为不同的项目锁定特定的 Flutter 版本,确保团队所有成员使用相同的开发环境,避免"在我机器上是好的"问题。
- 无缝切换:在不同项目间切换时,自动使用该项目指定的 Flutter 版本。
- 轻松测试:轻松使用最新稳定版、测试版或旧版本测试你的应用,而无需覆盖全局 SDK。
一、安装 FVM
前提条件
- 已安装并正确配置 Dart(Flutter 自带 Dart,但独立安装 FVM 需要系统级的 Dart)。
- 确保 Flutter 已在你的 PATH 中(至少初始安装时需要)。
安装命令
bash
# 使用 dart pub global activate 安装
dart pub global activate fvm
将 FVM 添加到系统 PATH
安装后,你需要将 FVM 的 bin 目录添加到系统的 PATH 环境变量中,这样才能在终端中直接使用 fvm 命令。
找到 FVM 的缓存路径:
bash
dart pub global list
输出会显示类似:fvm 3.0.2 at path "/Users/yourusername/.pub-cache/bin。你需要将显示的这个 bin 目录添加到 PATH。
具体添加方法,请参考下图,它清晰地展示了不同操作系统下的配置流程:
~/.bash_profile] C2[添加 PATH 配置] C3[使配置生效
source ~/.zshrc] end subgraph D [Windows 配置] D1[打开系统环境变量设置] D2[编辑 Path 变量] D3[添加 FVM 的 bin 路径] end C & D --> E[验证配置
fvm --version]
macOS / Linux:
编辑你的 shell 配置文件(如 ~/.zshrc 或 ~/.bash_profile):
bash
export PATH="$PATH":"$HOME/.pub-cache/bin"
然后运行 source ~/.zshrc(或你使用的配置文件)使其生效。
Windows:
- 在"系统属性"中点击"环境变量"。
- 在"用户变量"或"系统变量"中找到并编辑
Path。 - 添加一个新条目,值为:
%USERPROFILE%\AppData\Local\Pub\Cache\bin。
验证安装:
完成后,重新打开终端,运行:
bash
fvm --version
如果显示版本号,说明安装成功。
hombrew 安装fvm
第一步:确保已安装 Homebrew
如果您的 Mac 上还没有安装 Homebrew,请先安装它。打开终端并执行:
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
按照屏幕上的提示完成安装。安装完成后,可以运行 brew --version 来验证。
第二步:通过 Homebrew 安装 FVM
在终端中执行以下命令:
bash
brew tap leoafarias/fvm
bash
brew install fvm
命令说明:
- brew tap leoafarias/fvm:将 FVM 的官方仓库添加到 Homebrew 的源中。
- brew install fvm:从 tap 的仓库中安装 FVM。
第三步:验证安装
安装完成后,无需手动配置 PATH,直接验证即可:
bash
fvm --version
如果显示版本号(例如 3.0.2),说明安装成功。
二、FVM 核心命令详解
1. 安装 Flutter SDK 版本
bash
# 安装特定的稳定版本(推荐)
fvm install 3.16.9
# 安装最新稳定版
fvm install stable
# 安装 beta 频道版本
fvm install beta
# 安装 master 频道版本(最前沿,但可能不稳定)
fvm install master
# 列出所有可安装的发布版本
fvm releases
2. 列表与使用版本
bash
# 列出所有已安装的 Flutter SDK 版本
fvm list
# 查看当前项目使用的 Flutter 版本
fvm version
# 查看全局当前使用的 Flutter 版本
fvm global --version
三、工作流:项目中的实际使用
场景一:为现有项目配置特定版本
-
进入你的 Flutter 项目根目录。
-
使用 FVM 安装并指定项目使用的 Flutter 版本:
bashcd your_flutter_project fvm use 3.16.9 --force--force标志确保即使该版本未安装也会先进行安装。 -
执行后,FVM 会在项目根目录创建一个
.fvm文件夹,其中包含指向指定 SDK 的配置和软链接。
场景二:在新项目启动时
-
创建新项目目录并进入。
bashmkdir my_new_project && cd my_new_project -
指定要使用的 Flutter 版本。
bashfvm use stable -
使用 FVM 来运行
flutter create命令,确保使用正确版本的 SDK。bashfvm flutter create .
场景三:设置全局默认版本
设置一个默认版本,供那些没有指定版本的项目使用。
bash
fvm global stable
四、使用 FVM 运行 Flutter/Dart 命令
在配置了 FVM 的项目中,你不能再直接使用 flutter 或 dart 命令 ,而是需要在前面加上 fvm。
bash
# 错误方式 (会使用全局的 Flutter SDK)
flutter pub get
dart run
# 正确方式 (会使用项目指定的 Flutter SDK)
fvm flutter pub get
fvm dart run
# 运行应用
fvm flutter run
# 拉取依赖
fvm flutter pub get
# 构建 APK
fvm flutter build apk
# 运行 Dart 脚本
fvm dart your_script.dart
五、配置 Git 忽略(重要!)
FVM 在项目中创建的 .fvm 文件夹应该被提交到 Git,因为它包含了项目所需的 Flutter 版本信息,确保团队成员环境一致。
但是,其中的缓存文件应该被忽略。在项目根目录的 .gitignore 文件中添加:
# FVM
.fvm/flutter_sdk
这样,只提交 .fvm/fvm_config.json 文件,而不会提交整个 SDK。
六、在 IDE 中配置
为了让 IDE(VS Code 或 Android Studio)识别项目使用的 FVM 管理的 SDK,需要进行配置。
VS Code
- 打开你的 Flutter 项目。
- 按
Ctrl+Shift+P(Windows/Linux) 或Cmd+Shift+P(macOS)。 - 输入 "Flutter: Change SDK" 并选择。
- 从列表中选择
.fvm/flutter_sdk路径。
或者,在项目根目录的 .vscode/settings.json 中添加:
json
{
"dart.flutterSdkPath": ".fvm/flutter_sdk"
}
Android Studio / IntelliJ
- 打开项目。
- 进入菜单:File > Settings > Languages & Frameworks > Flutter。
- 在 "Flutter SDK path" 中,点击并导航到项目下的
./fvm/flutter_sdk目录。 - 点击 "Apply" 和 "OK"。
总结
FVM 的工作流可以概括为:
fvm install <version>- 安装版本fvm use <version>- 在项目中指定版本fvm flutter <command>- 在所有命令前加上fvm- 提交
.fvm目录到 Git (忽略.fvm/flutter_sdk) - 在 IDE 中配置 SDK 路径
掌握了 FVM,你就能优雅地解决 Flutter 版本管理和团队协作一致性的问题。