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

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

この記事からわかること

  • Flutter/DartFlutter SDKプロジェクトごとに管理する方法
  • FVM(Flutter Version Management)の使い方

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

FVMとは?

公式リファレンス:FVM

FVM(Flutter Version Management)」とは1つのPC内で複数のFlutter SDKバージョンを共存させるためのツールです。このツールを活用することでプロジェクトごとにFlutter SDKバージョンが異なる場合でもスイッチコストを抑えてプロジェクトを切り替えることが可能になります。

例えばA案件ではstable(安定版)のバージョンだがB案件では少し前のバージョンの場合だった場合にFVMを未使用だとグローバルにインストールしたSDKを再度入れ直して実行する手間が発生してしまいます。これをFVMを使用することでコマンド1つでバージョンの切り替えが可能になります。

FVMの導入方法:Homebrew

公式リファレンス:Install

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

┌───────────────────┬──────────────┬──────────┐
│ VersionRelease DateChannel  │
├───────────────────┼──────────────┼──────────┤
│ v1.0.0Dec 4, 2018  │ stable   │
├───────────────────┼──────────────┼──────────┤
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
├───────────────────┼──────────────┼──────────┤
│ 3.32.5Jun 25, 2025 │ stable ✓ │
└───────────────────┴──────────────┴──────────┘

Channel:
┌─────────┬─────────┬──────────────┐
│ ChannelVersionRelease Date │
├─────────┼─────────┼──────────────┤
│ stable  │ 3.32.5Jun 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でインストールしたバージョンが存在するので適当なものを指定します。

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

指定できたら「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つだけです。

  1. FVM自体のインストール
  2. プロジェクトルートで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

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

Search Box

Sponsor

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article