前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >鸿蒙版 Flutter 版本管理利器:FVM 使用指南

鸿蒙版 Flutter 版本管理利器:FVM 使用指南

作者头像
徐建国
发布于 2025-05-13 01:43:02
发布于 2025-05-13 01:43:02
17200
代码可运行
举报
文章被收录于专栏:个人路线个人路线
运行总次数:0
代码可运行

鸿蒙版 Flutter 版本管理利器:FVM 使用指南

一、FVM 简介

FVM(Flutter Version Manager)是一个专门为 Flutter 应用开发设计的版本管理工具。它允许开发者在同一台机器上安装和管理多个 Flutter 版本,解决了团队协作和项目迁移时因 Flutter 版本差异导致的兼容性问题。它允许开发者在不同的 Flutter 项目之间快速切换版本,而无需每次都下载和配置新的 Flutter SDK

官方网站: fvm.app[1]

二、FVM 的核心功能

  • 多版本管理 :支持安装管理多种 Flutter SDK 版本,包括稳定版、Beta 版、Dev 版及自定义版本,依项目需求快速切换。
  • 版本隔离 :为每个项目创建独立 Flutter 环境,使不同项目使用的版本互不干扰,便于维护多版本项目。
  • 团队协作支持 :团队成员用相同版本开发,避免版本不一致致错,指定项目需用版本,成员易复现环境。
  • 全局与项目级配置 :既能设全局默认 Flutter 版本,又能为特定项目设专用版本,提供灵活配置。
  • 通道管理 :支持 Flutter 的稳定、测试和开发通道。
  • 命令行工具 :提供丰富命令行工具,如查看版本、安装、设置全局版本、项目内用特定版本、查看已装版本、移除版本、清理缓存等。
  • 缓存管理 :缓存已下载的 Flutter SDK 版本,减少重复下载。

三、FVM 的优势

  • 提高开发效率 :快速切换版本,减少环境配置时间,使开发者专注业务逻辑实现。
  • 降低环境配置复杂度 :自动管理 SDK 下载、安装和切换,简化开发环境搭建。
  • 增强项目可移植性 :项目绑定特定版本,确保不同开发环境中的一致性。
  • 支持 CI/CD 集成 :无缝集成到持续集成持续部署流程,保证自动化构建稳定性。

fvm list 清楚本次缓存目录后

就在这个目录执行下面的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.

没有目录则创建。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 mkdir  /Users/jianguo/fvm/versions

四、FVM 的安装与使用

(一)安装 FVM

使用 Homebrew(macOS)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew install fvm

使用 Chocolatey(Windows

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
choco install fvm

使用包管理器Linux

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo snap install fvm

从源码安装克隆 FVM 仓库并手动安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/leoafarias/fvm.git
cd fvm
 dart pub global activate --source path .

(二)配置 FVM

安装完成后,初始化 FVM:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fvm doctor

该命令会检查 FVM 的配置状态,并提示是否需要更新或修复。

(三)更新 FVM

运行以下命令更新 FVM:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dart pub global activate fvm

五、配置 3.22.1

使用特定版本 3.22.1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone --branch 3.22.0-ohos git@gitcode.com:openharmony-sig/flutter_flutter.git  custom_3.22.1

六、配置 3.7.12

使用特定版本 3.7.12

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone --branch br_3.7.12-ohos-1.1.0 git@gitcode.com:openharmony-sig/flutter_flutter.git  custom_3.7.12
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 的时候,就如下面所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.03.4.0        │              │        │       │
└───────────────┴─────────┴───────────────────┴──────────────┴──────────────┴────────┴───────┘

image-20250512093850169
image-20250512093850169

image-20250512093850169

七、使用 SDK

SDK 下载到缓存目录以后, 可用 FVM 来创建项目

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# 使用自定义 SDK
# 由于此时项目目录是空的,可能会提示是否继续, 一路 yes 即可
fvm use custom_3.22.1

# 创建项目, 不要忽略最后的那个 "." 哦
fvm flutter create --platforms=ohos --project-name demo .

IDE / 编辑器配置

创建以后, 目录中会出现 .fvm(软链接到 SDK 实际位置) 和 .fvmrc(配置文件)

执行 tree -L 2 .fvm (仅参考)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.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

在项目目录下的 .vscode/settings.json 里配置 SDK 位置即可,示例如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "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/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 鸿蒙版 Flutter 版本管理利器:FVM 使用指南
    • 一、FVM 简介
    • 二、FVM 的核心功能
    • 三、FVM 的优势
    • 四、FVM 的安装与使用
      • (一)安装 FVM
      • (二)配置 FVM
      • (三)更新 FVM
    • 五、配置 3.22.1
    • 六、配置 3.7.12
    • 七、使用 SDK
      • IDE / 编辑器配置
      • VSCode
    • 八、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档