[MacOS] FVMを使って色んなFlutterバージョンのインストールや管理

[MacOS] FVMを使って色んなFlutterバージョンのインストールや管理

2023-08-05 hit count image

一つのMacOSマシンでFVM(Flutter Version Management)を使って色んなバージョンのFlutterをインストールして管理する方法について説明します。

概要

色んなFlutterプロジェクトを一つのマシン(PC)で開発する場合、各プロジェクトで使うFlutterバージョンに従って開発環境を構築する必要がある場合があります。

この時、毎回Flutterを消して、そのプロジェクトに必要なFlutterバージョンをインストールすることはできません。今回のブログポストでは、FVM(Flutter Version Management)を使って一つのマシンで色んなFlutterバージョンをインストールして管理する方法について説明します。

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を使ってインストールしたFlutterfvm 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.62.10.4バージョンをインストールしてみます。次のコマンドを実行してFlutterの3.10.62.10.4バージョンをインストールします。

fvm install 3.10.6
fvm install 2.10.4

FlutterFVMを使わなくインストールしたことがある場合、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バージョンを使う方法についてみてみましょう。次のコマンドを実行するとFlutter3.10.6をグローバル的に使うことができます。

fvm global 3.10.6

次のコマンドを使うと現在のプロジェクトだけに適用することができます。

fvm use 3.10.6

このコマンドを実行すると、コマンドが実行されたプロジェクト(フォルダ)に.fvmフォルダが生成されてfvm_config.jsonファイルとflutter_sdkフォウルだが生成されます。

.fvmフォルダ

fvm useを使うと指定したバージョンのFlutter SDK.fvmフォルダにインストールされます。しかし、このSDKGitで管理する必要がないので、.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
  }
}

このように修正すると、VSCodeFlutterプロジェクトを開いた時、FVMでインストールしたFlutter SDKを自動で使うことができます。

問題解決

fvm globalでFlutterバージョンを変更する時

fvm globalFlutterバージョンを変更する時、下記のエラーが発生する場合があります。

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で開発されています。

興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。

Posts