FVMとは
- FVM(Flutter Version Manger)のこと
- FlutterSDKのバージョン管理ツール
- 複数のFlutterをインストールし、プロジェクト毎にバージョンを切り替えることが可能
Node.jsのnvm
やRubyのrbenv
,Pythonのpyenv
的なイメージ
fvmのバージョン
3.2.1
導入
- macOS(homebrew)
brew tap leoafarias/fvm
brew install fvm
- windows(choco)
choco install fvm
バージョン確認
fvm -v
3.2.1
コマンド(抜粋)
fvm doctor
環境やプロジェクト設定に関する情報を表示
fvm releases
インストール可能なすべてのFlutter SDKリリースを表示
┌───────────────────┬──────────────┬──────────┐
│ Version │ Release Date │ Channel │
├───────────────────┼──────────────┼──────────┤
│ v1.0.0 │ Dec 4, 2018 │ stable │
├───────────────────┼──────────────┼──────────┤
~~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~
│ 3.24.4 │ Oct 24, 2024 │ stable │
├───────────────────┼──────────────┼──────────┤
│ 3.24.5 │ Nov 14, 2024 │ stable ✓ │
└───────────────────┴──────────────┴──────────┘
Channel:
┌─────────┬─────────┬──────────────┐
│ Channel │ Version │ Release Date │
├─────────┼─────────┼──────────────┤
│ stable │ 3.24.5 │ Nov 14, 2024 │
└─────────┴─────────┴──────────────┘
fvm install [version]
指定したFlutter SDKバージョンをインストール
fvm install 3.22.0
✓ Flutter SDK: SDK Version : 3.22.0 installed! (2.6s)
セットアップまで行いたい場合は-s
オプションをつける
fvm install 3.22.0 -s
fvm remove [version]
指定したFlutter SDKバージョンを削除
fvm remove 3.22.1
✓ 3.22.1 removed. (0.5s)
fvm use [version] [options]
プロジェクトで使用するFlutter SDKバージョンを設定し
.fvm/
ディレクトリが自動作成される
プロジェクトルートで実行すること!!
プロジェクトルートではない(pubspec.yamlが見つからない)場合
以下のように聞かれます
No pubspec.yaml detected in this directory
? Would you like to continue? (y/n) › no
installが済んでいないバージョンの場合
以下のように聞かれinstallが終了次第、セットアップされます
Flutter SDK: SDK Version : 3.24.4 is not installed.
? Would you like to install it now? (y/n) › yes
✓ Flutter SDK: SDK Version : 3.24.4 is setup
✓ Dependencies resolved. (11.0s)
✓ Project now uses Flutter SDK : SDK Version : 3.24.4
- チャンネル名を指定
fvm use stable
または
- バージョンを指定
fvm use 3.22.0
プロジェクトのpubspec.yamlのと指定したバージョンが合わない場合以下のように聞かれます
SDK Version : 3.22.0 has Dart SDK 3.4.0 does not meet the project constraints of ^3.5.4.
This could cause unexpected behavior or issues.
? Would you like to proceed? (y/n) › no
environment:
sdk: ">=3.4.0 <4.0.0" # プロジェクトのDartのsdkのバージョンを調整してください
.fvm/
ディレクトリ配下を.gitignore
に追加するか尋ねられます
You should add the fvm version directory ".fvm/" to .gitignore.
? Would you like to do that now? (y/n) › yes
.gitignore
に自動的に追加されます
# FVM Version Cache
.fvm/
✓ Dependencies resolved. (2.0s)
✓ Project now uses Flutter SDK : SDK Version : 3.22.0
fvm list
インストール済みのFlutter SDKバージョンを一覧表
-
fvm use
で指定した(setupが完了したもの)Local
に⚫︎がつく -
fvm global
したもの(後述)はGlobal
に⚫︎がつく - fvm installのみしか実行されていないバージョンは
NeedSetup
となる
fvm list
┌─────────┬─────────┬─────────────────┬──────────────┬──────────────┬────────┬───────┐
│ Version │ Channel │ Flutter Version │ Dart Version │ Release Date │ Global │ Local │
├─────────┼─────────┼─────────────────┼──────────────┼──────────────┼────────┼───────┤
│ 3.22.1 │ │ Need setup │ │ │ │ │
├─────────┼─────────┼─────────────────┼──────────────┼──────────────┼────────┼───────┤
│ 3.22.0 │ stable │ 3.22.0 │ 3.4.0 │ May 13, 2024 │ ● │ ● │
└─────────┴─────────┴─────────────────┴──────────────┴──────────────┴────────┴───────┘
fvm global [version]
すでにflutterの環境構築を済ませている方は注意が必要です
指定したFlutter SDKバージョンをグローバルで使用するよう設定
fvm global 3.22.1
Flutter SDK: SDK Version : 3.22.1 is now global
┌───────────────────────────────────────────────────────┐
│ ⚠ However your configured "flutter" path is incorrect │
└───────────────────────────────────────────────────────┘
CURRENT: /Users/user.name/development/flutter/bin
CHANGE TO: /Users/user.name/fvm/default/bin
globalで設定したので既存のflutterのパスをfvmのパスに変える必要があります。
パスの通し方は省略します。
上記のコマンドfvm grobal
を解除したい場合は--unlink
オプションを使いましょう
fvm global --unlink
AndroidStudioにpathを設定する
注意点
fvmの環境下ではflutterコマンドを全てfvm flutter 〇〇
という形で打ち込む必要があります
例1 flutter clean
コマンドを実行したい
fvm flutter clean
例2 flutter pub run build_runner build --delete-conflicting-outputs
を実行したい
fvm flutter pub run build_runner build --delete-conflicting-outputs
面倒な場合はエイリアスをしておくといいと思います
-
fvm flutter
をflutter
としていて今まででのようにflutter 〇〇
として使えます
$ echo 'alias flutter="fvm flutter"' >> ~/.zshrc
$ source ~/.zshrc
参考