目次
概要
色んなFlutterプロジェクトを一つのマシン(PC)で開発する場合、各プロジェクトで使うFlutterバージョンに従って開発環境を構築する必要がある場合があります。
この時、毎回Flutterを消して、そのプロジェクトに必要なFlutterバージョンをインストールすることはできません。今回のブログポストでは、FVM(Flutter Version Management)
を使って一つのマシンで色んなFlutterバージョンをインストールして管理する方法について説明します。
- FVM: https://fvm.app/
FVMのインストール
次のコマンドを使ってFVM
をインストールします。
brew tap leoafarias/fvm
brew install fvm
.zshrcファイル
FVM
を使ってFlutter
のバージョンを管理するためには.zshrc
ファイルを修正する必要があります。~/.zshrc
ファイルを開いて次の内容を追加します。
export PATH="$PATH:$HOME/.pub-cache/bin"
export PATH="$PATH:$HOME/fvm/default/bin"
alias flutter="fvm flutter"
FVM
を使ってインストールしたFlutter
はfvm flutter
コマンドで使うことができます。これを簡単にするためにalias flutter="fvm flutter"
を追加してFlutter
コマンドをfvm
キーワードなしで使えるようにしました。
Flutterのバージョンリスト
次のコマンドを実行するとFVM
でインストール可能なFlutterバージョンを確認することができます。
fvm releases
そしたら次のようにインストール可能なFlutterのバージョンリストを確認することができます。
...
Jun 8 23 │ 3.12.0
Jun 14 23 │ 3.10.5
Jun 21 23 │ 3.12.0-1.1.pre
Jul 12 23 │ 3.13.0-0.1.pre
--------------------------------------
Jul 12 23 │ 3.10.6 stable
--------------------------------------
--------------------------------------
Jul 19 23 │ 3.13.0-0.2.pre beta
--------------------------------------
色んなFlutterバージョンのインストール
今回のブログポストではFlutterの3.10.6
と2.10.4
バージョンをインストールしてみます。次のコマンドを実行してFlutterの3.10.6
と2.10.4
バージョンをインストールします。
fvm install 3.10.6
fvm install 2.10.4
Flutter
をFVM
を使わなくインストールしたことがある場合、FVM
を使わなくインストールしたFlutter
を削除して上記のコマンドを使ってFlutter
をインストールします。
rm -rf ~/development/flutter
fvm list
インストールが完了されたら、次のコマンドを実行してインストールされたFlutterバージョンを確認します。
fvm list
そしたら次のようにFVM
を使ってインストールしたFlutterのバージョンを確認することができます。
3.10.6
2.10.4
flutter version
次のコマンドを実行すると現在使っているFlutterバージョンを確認することができます。
flutter --version
そしたら次のように現在使っているFlutterバージョンを確認することができます。
Flutter 2.10.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision c860cba910 (1 year, 4 months ago) • 2022-03-25 00:23:12 -0500
Engine • revision 57d3bac3dd
Tools • Dart 2.16.2 • DevTools 2.9.2
インストールしたFlutterバージョンを使う
次はFVM
でインストールしたFlutterバージョンを使う方法についてみてみましょう。次のコマンドを実行するとFlutter
の3.10.6
をグローバル的に使うことができます。
fvm global 3.10.6
次のコマンドを使うと現在のプロジェクトだけに適用することができます。
fvm use 3.10.6
このコマンドを実行すると、コマンドが実行されたプロジェクト(フォルダ)に.fvm
フォルダが生成されてfvm_config.json
ファイルとflutter_sdk
フォウルだが生成されます。
.fvmフォルダ
fvm use
を使うと指定したバージョンのFlutter SDK
が.fvm
フォルダにインストールされます。しかし、このSDK
はGit
で管理する必要がないので、.gitignore
ファイルを開いて次のように修正します。
.fvm/flutter_sdk
fvm use
を使うと指定したFlutter
のバージョンがfvm_config.json
ファイルに記録されます。.fvm/fvm_config.json
ファイルを開くと下記のような内容が確認できます。
{
"flutterSdkVersion": "3.10.6",
"flavors": {}
}
他の開発とプロジェクトのFlutter
バージョンを共有する必要があるので、このファイルはGit
で管理するようにコミットします。
他の開発環境にFVM
がインストールされて、Flutter
プロジェクトに.fvm/fvm_config.json
ファイルが存在する場合、次のコマンドを実行して、当該Flutter
プロジェクトに必要なFlutter SDK
をインストールすることができます。
fvm install
Flutterバージョン削除
マシンで使わないFlutterバージョンがある場合、次のコマンドを使って削除することができます。
fvm remove 2.10.4
削除した後、次のコマンドを実行してマシンにインストールされたFlutter
バージョンを確認してみます。
fvm list
そしたら次のように2.10.4
バージョンが上手く削除されたことが確認できます。
Cache Directory: /Users/deku/fvm/versions
3.10.6 (global)
VSCode
VSCode
を使う開発者の場合、.vscode/settings.json
ファイルを開いて次のように修正します。
{
"dart.flutterSdkPath": ".fvm/flutter_sdk",
"search.exclude": {
"**/.fvm": true
},
"files.watcherExclude": {
"**/.fvm": true
}
}
このように修正すると、VSCode
でFlutter
プロジェクトを開いた時、FVM
でインストールしたFlutter SDK
を自動で使うことができます。
問題解決
fvm globalでFlutterバージョンを変更する時
fvm global
でFlutter
バージョンを変更する時、下記のエラーが発生する場合があります。
Flutter "stable" has been set as global
However your "flutter" path current points to:
.
to use global Flutter SDK through FVM you should change it to:
/Users/{user_name}/fvm/default/bin
このエラーはPATH
が上手く設定されてない場合発生する問題です。これを解決するためには.zshrc
ファイルを開いて下記の内容が追加されたか確認します。
export PATH="$PATH:$HOME/fvm/default/bin"
flutter doctorを実行する時
flutter doctor
(fvm flutter doctor)を実行する時、次のような警告(warning)が発生する場合あります。
[!] Flutter (Channel stable, 3.10.6, on macOS 13.3.1 22E772610a darwin-x64, locale ja-JP)
! Warning: `dart` on your path resolves to /usr/local/Cellar/dart/2.18.0/libexec/bin/dart, which is not inside your current Flutter SDK checkout at /Users/deku/fvm/versions/3.10.6. Consider adding /Users/deku/fvm/versions/3.10.6/bin to the front of your path.
これは以前インストールしたDart
とコンフリクトされて発生する問題です。これを解決するためには次のコマンドを実行して以前インストールしたDart
を削除します。
brew uninstall dart
完了
これでFVM
を使って同じマシンで色んなFlutterバージョンを使う方法について見てみました。まし、皆さんも色んなFlutterバージョンの開発環境が必要な場合、FVM
を使ってバージョン管理をしてみてください。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。