【Dart】FVMでFlutter SDKのバージョンをプロジェクトごとに管理する方法

この記事からわかること
- Flutter/DartでFlutter SDKをプロジェクトごとに管理する方法
- FVM(Flutter Version Management)の使い方
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Meerkat
- Xcode:16.3
- Flutter:3.32.5
- Dart:3.7.2
- FVM:3.2.1
- Mac M1:Sequoia 15.4
FVMとは?
「FVM(Flutter Version Management)」とは1つのPC内で複数のFlutter SDKバージョンを共存させるためのツールです。このツールを活用することでプロジェクトごとにFlutter SDKバージョンが異なる場合でもスイッチコストを抑えてプロジェクトを切り替えることが可能になります。
例えばA案件ではstable(安定版)のバージョンだがB案件では少し前のバージョンの場合だった場合にFVMを未使用だとグローバルにインストールしたSDKを再度入れ直して実行する手間が発生してしまいます。これをFVMを使用することでコマンド1つでバージョンの切り替えが可能になります。
FVMの導入方法:Homebrew
FVMをインストールする方法はHomebrewやDartを使用します。Homebrewの場合は以下のコマンドを順番に実行します。
# HomebrewにFVMの専用リポジトリを追加する(タップ)
$ brew tap leoafarias/fvm
$ brew install fvm
Xcode Command Line Tools
のバージョンが古いと失敗することがあるのでその場合は以下コマンドで最新にして上げてください。
# 現在のCommandLineToolsを削除
$ sudo rm -rf /Library/Developer/CommandLineTools
# 最新のCommandLineToolsをインストール
$ sudo xcode-select --install
fvm -v
を実行してバージョンが取得できれば導入は成功です。
$ fvm -v
3.2.1
アンインストールしたい場合
$ brew uninstall fvm
$ brew untap leoafarias/fvm
使用可能なFlutter SDKバージョンを確認する
使用可能なFlutter SDKバージョンを確認するにはfvm releases
を使用します。実行すると存在するバージョン一覧が表示され、最新のstable(安定版)には✓
が付与されています。
$ fvm releases
┌───────────────────┬──────────────┬──────────┐
│ Version │ Release Date │ Channel │
├───────────────────┼──────────────┼──────────┤
│ v1.0.0 │ Dec 4, 2018 │ stable │
├───────────────────┼──────────────┼──────────┤
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
├───────────────────┼──────────────┼──────────┤
│ 3.32.5 │ Jun 25, 2025 │ stable ✓ │
└───────────────────┴──────────────┴──────────┘
Channel:
┌─────────┬─────────┬──────────────┐
│ Channel │ Version │ Release Date │
├─────────┼─────────┼──────────────┤
│ stable │ 3.32.5 │ Jun 25, 2025 │
└─────────┴─────────┴──────────────┘
デフォルトではChannelがstable
(安定版)になっています。チャンネルは以下の4つが用意されていますがstable
以外は基本開発版なので案件ではそのままで良いと思います。
$ flutter channel
Flutter channels:
master (latest development branch, for contributors)
main (latest development branch, follows master channel)
beta (updated monthly, recommended for experienced users)
* stable (updated quarterly, for new users and for production app releases)
一応チャンネルを変更する方法も載せておきます。
$ flutter channel beta
$ flutter upgrade
プロジェクトでの使い方
プロジェクトでFVMを使ってFlutter SDKのバージョンを管理する方法をみていきます。使い方は簡単でプロジェクトルートに移動してfvm use stable
コマンドを実行するだけです。インストールしたいバージョンはチャンネル名もしくはバージョン自体を指定します。
$ fvm use stable
or
$ fvm use 3.32.5
このコマンドを実行すると.fvm
ディレクトリが生成されその中に以下のようなファイルたちが生成されます。
.fvm/
├── flutter_sdk/ // このプロジェクト用のFlutter SDKへのシンボリックリンク
├── versions/ // FVMがインストールした各バージョンの実体
├── version // このプロジェクトのバージョン番号が記述されたファイル
├── release // このプロジェクトのチャンネル情報が記述されたファイル
└── fvm_config.json // バージョン設定ファイル
fvm_config.json
がプロジェクトごとに管理するための設定ファイルになります。
{
"flutterSdkVersion": "stable"
}
これで導入が完了できているのでプロジェクト内で操作する際にはflutter
コマンドではなくfvm flutter
コマンドを実行するようにすればOKです。
$ fvm flutter run -d emulator-5554 // こちらを使う
$ flutter run -d emulator-5554
Android StudioでSDKを指定する
Android StudioでFlutterアプリを開発する際にSDKを指定するにはまずプロジェクトをAndroid Studioで起動し、上部メニュー「Android Studio」>「Settings...」>「Languages & Frameworks」>「Flutter」>「Flutter SDK Path」の部分からFVMでインストールしたFlutter SDKのパスを指定します。User/XXXXX/fvm/versions/
配下にFVMでインストールしたバージョンが存在するので適当なものを指定します。

指定できたら「Apply」を押してから「OK」をクリックすることで反映されます。
FVMで導入したSDKをグローバルで使用する
FVMで導入したSDKは基本的にはfvm_config.json
ファイルのあるプロジェクト内で使用します。ただグローバルでも使用できるようにしたい場合は以下のコマンドを実行します。
$ fvm global <バージョン>
もしすでにグローバルに手動でインストール済みの場合は以下のように表示されます。これは「グローバルに切り替えを試みたけどまだflutter
コマンドはFVM経由ではない」と怒られています。
Flutter SDK: Channel: Stable is now global
┌───────────────────────────────────────────────────────┐
│ ⚠ However your configured "flutter" path is incorrect │
└───────────────────────────────────────────────────────┘
CURRENT: /Users/XXXXX/development/flutter/bin
CHANGE TO: /Users/XXXXX/fvm/default/bin
その場合は手動でインストールしていたFlutter SDKを一旦削除する必要があるので、which flutter
でインストール場所を見つけて削除し、fvmの方のパスを通してあげればOKです。
$ which flutter
/Users/XXXXX/development/flutter/bin/flutter
# 手動でインストールしたSDKを削除
$ rm -rf /Users/XXXXX/development/flutter
$ vi ~/.zshrc
i # インサートモードに変更して
# 以下を追加する
export PATH="$PATH:/Users/XXXXX/fvm/default/bin"
:wq # 保存して閉じる
# 反映して終了
$ source ~/.zshrc
# fvmからコマンドを引っ張ってこれていればOK
$ which flutter
/Users/XXXXX/fvm/default/bin/flutter
新規メンバーがFVM導入プロジェクトでやること
FVMを導入しているプロジェクトに新規メンバーが参入することになった場合はやってもらうことは2つだけです。
- FVM自体のインストール
- プロジェクトルートでfvm installコマンドの実行
# 1.FVM自体のインストール
$ brew tap leoafarias/fvm
$ brew install fvm
# 2.プロジェクトルートでfvm installコマンドの実行
$ fvm install
これで指定されたバージョンのSDKがインストールされます。あとはfvm flutter
を使うことだけ周知すればOKかと思います。
不要になったSDKバージョンの削除
不要になったSDKバージョンを削除するにはremove
コマンドを使用します。
$ fvm remove 3.29.2
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。