Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
30
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@Kurusu_ima

fvmを使ってFlutter SDKのバージョンを切り替える

この記事の内容

fvmというFlutter SDKバージョン管理ツールを使って、コマンドラインでFlutterのバージョンを秒で切り替えられるようにします。
例えば、普段はstableで開発してるけどwebのためにbetaを使いたい!、という人に役立つと思います。

※ MacOSを想定しています。インストール方法の記載元もリンク付するので、別環境の方はそちらをご覧になって読み替えて下さい。

fvmをインストールする

以下の2手順です
- pubを使えるようにするためにDartをインストールする
- pubを使ってfvmをインストールする

Dartのインストール

こちらが公式のインストール方法です https://dart.dev/get-dart
既にFlutterにバンドルされてるやつではない素のDartを入れてる方は飛ばして下さい。

fvmはDartで書かれたパッケージです。pubで入れるのが一番丸いので、まずはDartを入れましょう。
以下のコマンドで入ります。

brew tap dart-lang/dart
brew install dart

インストールしたパッケージを使えるようにパスも通しましょう。.zshrc.bashrcなどに以下を追加して下さい。

export PATH="$PATH":"$HOME/.pub-cache/bin"

which pubで表示されたらOKです。

fvmをインストール

先程インストールしたdartに入ってるpubを使ってfvmをインストールします。これだけです。

pub global activate fvm

fvmを使う

複数バージョンのFlutterをインストールする

fvm install バージョン名又はチャンネル名で該当のFlutterSDKが手に入ります。
例えばstableとbetaを使いたい人は以下2つのコマンドです

fvm install stable
fvm install beta

複数バージョンのFlutterを切り替える

fvm use インストール済みのバージョン名又はチャンネル名

でバージョンが切り替わります。

さらにIDEに使用するFlutterを指定しておきましょう。VSCodeの場合はプロジェクトルートの.vscode/settings.jsonに以下を書き込めばOKです。

{
    "dart.flutterSdkPaths": [
        "fvm"
    ]
}

Android Studioは使ってないので勘ですが、
Preferences -> Languages & Frameworks -> Flutter -> SDKでFlutter SDK pathにfvmと入力すればOKだと思います。

※ 詳細な使い方は公式のREADMEを参照して下さい https://github.com/leoafarias/fvm

30
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
30
Help us understand the problem. What is going on with this article?