Flutterのバージョンを切り替えて開発をする機会がありましたので、Flutter Version Management(FVM)を導入してみました。開発チームでFlutterのバージョンを合わせたり、プロジェクトでFlutterのバージョン管理をする場合に便利です。
HomebrewでFVMをインストール
HomebrewでFVMをインストールします。
brew tap leoafarias/fvm
brew install fvm
既にFlutter SDKをインストールしている場合、競合を回避するため事前に削除しておく必要があります。
プロジェクトの設定
Flutterのバージョンを指定
使用可能なFlutterのバージョン一覧を取得します。
fvm releases
プロジェクトのルートディレクトリに移動して、プロジェクトで使用するFlutterのバージョンを指定します。対象のバージョンがインストールされていない場合、Flutterをインストールするか聞かれますので、Yes(Y)を入力してインストールを開始します。
fvm use 3.0.5
プロジェクトで既に.fvm/fvm_config.json
が存在する場合は、事前に定義されたFlutterのバージョンをインストールします。
fvm install
.gitignoreの設定
プロジェクトの.gitignore
にFlutter SDKへの相対シンボリックリンクを追加します。
.gitignore
〜〜〜
.fvm/flutter_sdk
VS Codeの設定
VS Codeの設定でFlutter SDKのパスを指定します。
.vscode/settings.json
{
"dart.flutterSdkPath": ".fvm/flutter_sdk",
"search.exclude": {
"**/.fvm": true
},
"files.watcherExclude": {
"**/.fvm": true
}
}
VS Codeを開き直すと設定が反映されます。これでVS CodeではFVMで指定したFlutterのバージョンが使われることになります。
Flutterのコマンドを使用
Flutterのコマンドを使用する場合は、先頭にfvm
をつけてコマンドを実行します。
# 例
fvm flutter --version
fvm flutter doctor
fvm flutter run
毎回fvm
を付けたくない場合は、エイリアスを設定します。
# zshの場合
echo 'alias flutter="fvm flutter"' >> ~/.zshrc
source ~/.zshrc
プロジェクト以外でFlutterのコマンドを使用
プロジェクト以外でFlutterのコマンドを使用するにはグローバルバージョンを設定します。
fvm global 3.3.3
パスを通します。
# zshの場合
echo 'export PATH="$PATH:$HOME/fvm/default/bin"' >> ~/.zshrc
source ~/.zshrc
プロジェクト以外でもFlutterコマンドが使えるようになります。先頭にfvmを付ける必要はありません。
flutter --version
Flutterのバージョンを削除
Flutterのバージョンは次のコマンドで削除できます。
fvm remove 3.0.5
まとめ
FVMは他言語のバージョン管理ツールと使い方も似ているため直感的に利用することができました。設定をしておけばプロジェクトを開いた際に自動でFlutterのバージョンが切り替わるので、複数のプロジェクトに参加している場合はとくに役立つツールだと思います。