JavaScriptを有効にしてください

【FVM】Flutter SDKの複数バージョン管理

 ·  ☕ 3 分で読めます

プロジェクト毎にFlutter SDKのバージョンを切り替えたい。

FVM(Flutter Version Management)
https://fvm.app/

インストールした手順

Flutterの要件を満たしている前提。

https://fvm.app/docs/getting_started/installation をみる。
インストール済みのFlutterがあれば削除しておくのが安心。

MacOS

Homebrewパッケージから。

1
2
brew tap leoafarias/fvm
brew install fvm

Windows

スタンドアローンがお手軽。

スタンドアローン(推奨)

FVM自体のアップデートは手動になるけど、下記chocoをインストールするのが嫌ならこちらのほうがお手軽。

バイナリを取得する。
https://github.com/leoafarias/fvm/releases

適当なディレクトリに展開する(以下はユーザーディレクトリのtoolsとしている)。
C:\Users\<username>\tools\fvm

環境変数PATHC:\Users\<username>\tools\fvmを追加する。

1
2
# fvm のインストール確認
fvm doctor

choco

chocoインストール
https://chocolatey.org/install
※fvmがwingetで取得できればなあ…仕方ない…

1
2
3
4
5
6
# choco のインストール確認
choco -v
# choco で fvm インストール
choco install fvm
# fvm のインストール確認
fvm doctor

ここまでがfvmのインストール。

使い方

1
2
3
4
5
6
7
8
9
# インストール可能なバージョンの一覧表示
fvm releases

# 複数バージョンのインストール
fvm install 2.8.1
fvm install 2.10.1

# インストール済みのバージョンを表示
fvm list

プロジェクトの設定

■Flutterプロジェクトを作成済み場合

1
2
3
cd <project dir>
fvm use 2.10.1
# fvm use stable #channelの指定もOK

■Flutterプロジェクトが未作成の場合

1
2
3
4
5
mkdir fvm_test
cd fvm_test
fvm use 2.10.1 --force
# fvm use stable #channelの指定もOK
fvm flutter create .

自動生成される.fvm\fvm_config.jsonをコミットすることで、チームでバージョンを統一できる。

VSCodeや.gitignoreの設定はこちら。
https://fvm.app/docs/getting_started/configuration

最後に、doctorで正しくSDKを認識しているか確認しておく。

1
2
fvm doctor
fvm flutter doctor

TIPS

エイリアス

FVM管理のFlutter SDKのコマンドを実行する際にfvm flutter XXXや、fvm dart XXXのようにfvmのコマンドが必要になる。
これはエイリアスで解決できる。

global化

プロジェクトとは関係の無いところでFVMで取得したSDKを使用したい場合、globalコマンドが使える。
globalで指定したバージョンがfvm無しに実行できる。

1
2
3
4
# global には stable チャネルを指定
fvm global stable
# fvm 無しで global に指定したSDKが参照される
flutter doctor

flavor

プロジェクトの中でも複数のSDKを切り替えることができる。
https://fvm.app/docs/guides/project_flavors

1
2
3
4
5
6
7
{
  "flutterSdkVersion": "stable",
  "flavors": {
    "beta": "beta",
    "prod": "2.10.1"
  }
}

betaとしてbetaバージョンを、prodとして2.10.1を指定した例。
fvm flavorで切り替える。

1
2
3
4
5
6
7
8
9
> fvm flavor
Project flavors configured for "fvm_test":

[1] beta
[2] prod

Select an environment:1 #1を入力
Switching to [beta] flavor, which uses [beta] Flutter sdk.
Now using [beta] flavor. Flutter version [beta].
共有

tommy
著者
tommy
Software engineer⭐LPIC-3(304)⭐