본문 바로가기

Flutter

FVM(Flutter Version Management) 설치 및 사용

FVM(Flutter Version Management)

FVM(Flutter Version Management)Flutter SDK 버전을 설치 및 관리할 수 있는 기능들을 제공하는 버전 관리(Version Management)이다.

FVM 개요

FVM(Flutter Version Management)Flutter SDK 버전을 참조하여 일관된 앱 빌드 환경을 사용하거나, 프로젝트별로 사용되는 Flutter SDK 버전이 다를 경우 각 프로젝트별로 Flutter SDK 버전을 따로 설정하여 사용할 수 있도록 지원하는 Flutter 버전 관리자이다.

FVM 독립형(Standalone) 설치

macOS

Homebrew 패키지 관리자를 사용하는 경우 Terminal에서 아래의 명령으로 FVM설치할 수 있다.

brew tap leoafarias/fvm
brerw install fvm

 

 

 

Homebrew 설치 및 사용

Homebrew는 macOS Terminal 또는 Linux shell prompt에서 명령어(CLI, Command-Line Interface)로 패키지를 설치 및 관리할 수 있는 기능들을 제공하는 패키지 관리자이다. Homebrew 소개 Homebrew는 macOS나 Linux 시스템에

recdev.tistory.com

 

아래의 명령으로 FVM제거할 수 있다.

brew uninstall fvm
brew untap leoafarias/fvm

Windows

Chocolatey 패키지 관리자를 사용하는 경우 PowerShell에서 아래의 명령으로 FVM설치할 수 있다.

choco install fvm

 

 

Chocolatey(The Package Manager for Windows) 설치 및 사용

Chocolatey 개요 Chocolatey(초콜리티, 약칭: Choco)는 윈도우(Windows)에서 사용할 수 있는 패키지 매니저(Package Manager)이다. 마이크로소프트(Microsoft)에서 제공하는 도구는 아니며, 리눅스(Linux)의 apt(Advanced

recdev.tistory.com

 

Lunux

Homebrew 패키지 관리자를 사용하는 경우 Terminal에서 아래의 명령으로 FVM설치할 수 있다.

brew tap leoafarias/fvm
brerw install fvm

 

 

 

Homebrew 설치 및 사용

Homebrew는 macOS Terminal 또는 Linux shell prompt에서 명령어(CLI, Command-Line Interface)로 패키지를 설치 및 관리할 수 있는 기능들을 제공하는 패키지 관리자이다. Homebrew 소개 Homebrew는 macOS나 Linux 시스템에

recdev.tistory.com

 

아래의 명령으로 FVM제거할 수 있다.

brew uninstall fvm
brew untap leoafarias/fvm

Pub package를 이용한 FVM 설치

Pub package를 이용하여 FVM설치할 수 있지만, FVM을 사용하여 전역 Flutter 설치를 관리할 계획이라면 독립형(Standalone)으로 설치하는 것이 좋다.

dart pub global activate fvm

FVM 사용을 위한 프로젝트IDE 구성

프로젝트 구성

FVM선택한 버전의 캐시에 대한 심볼릭 링크(Symlink)를 프로젝트의 ./fvm/flutter_sdk에 생성한다. 프로젝트의 .gitignore에 아래의 내용을 추가해야 한다.

.fvm/flutter_sdk

FVM 구성

캐시 디렉터리(Cache Directory)

FVM_HOME 환경 변수를 설정하여 FVM 캐시 디렉터리를 지정할 수 있다. FVM_HOME 환경 변수를 지정하지 않을 경우 기본 FVM 경로가 사용된다. FVM 구성(config)에서 --cache-path를 설정하여 디렉터리를 변경할 수도 있다.

구성(Config)

FVM에서 변경할 수 있는 구성(Config)들이 있으며, CLI(Command Line Interface)에서 설정한 모든 구성은 Sidekick(GUI, Graphic User Interface)과 호환된다.

다른 Flutter 저장소

FVM_GIT_CACHE 환경 변수를 설정하여 다른 Flutter 저장소, 포크 또는 로컬 캐시를 사용할 수 있다.

FVM 구성 확인

fvm config

Flutter SDK 버전이 저장될 위치는 아래와 같이 설정가능하며, 아무것도 지정하지 않을 경우 기본값이 사용된다.

fvm config --cache-path <CHAHE_PATH>

통합 개발 환경(IDE, Integrated Development Environment) 구성

VS Code

옵션 1 - 자동 전환(권장)

VS Code는 항상 모든 IDE 도구에 대하여 프로젝트 내에서 선택된 버전을 사용한다. Flutter SDK 경로지정하고, 검색파일 감시에서 .fvm 경로를 제거한다. 프로젝트 내에 .vscode 폴더를 만든 다음 setting.json 파일을 만들고 아래의 내용을 추가한다.

.vscode/settings.json

{
  "dart.flutterSdkPath": ".fvm/flutter_sdk",
  // 검색에서 .fvm 파일들 제거
  "search.exclude": {
    "**/.fvm": true
  },
  // 파일 감시에서 .fvm 파일들 제거
  "files.watcherExclude": {
    "**/.fvm": true
  }
}

프로젝트 루트 디렉터리에서 fvm use <원하는 버전>을 실행한다. 올바르게 구성되면 VS Code에서 사용되는 버전으로 전환된다. 문제가 있는 경우 VS Code상태 표시줄에 있는 Flutter 버전 텍스트를 클릭하여 컴퓨터에 설치된 Flutter SDK들을 표시한다. 프로젝트 내의 .vscode 디렉터리를 확인한 다음 fvm 구성에 따라 자동으로 Flutter SDK선택하거나, fvm 캐시 디렉터리에서 Flutter SDK수동으로 선택할 수 있다.

옵션 2 - 모든 Flutter SDK 보기(수동 전환)

VS CodeFlutter: Change SDK를 사용하여 캐시 된 모든 Flutter SDK전환할 수 있는 기능이 있다.
버전 디렉터리에 대한 경로를 지정하면 VS Code에서 FVM이 설치한 모든 Flutter SDK 버전들을 볼 수 있다.

{
  "dart.flutterSdkPaths": ["/Users/$USER/fvm/versions"]
}

또는 선택한 버전만 지정할 수도 있다. 아래의 코드는 VS CodeFlutter SDK안정적인 버전개발 버전만 표시하도록 한다.

{
  "dart.flutterSdkPaths": [
    "/Users/$USER/fvm/versions/stable",
    "/Users/$USER/fvm/versions/dev"
  ]
}

현재 Flutter SDK 버전변경하려면 프로젝트를 열고 명령 팔레트에서 Flutter: Change SDK를 입력하고 사용할 Flutter SDK 버전선택한다.

Android Studio

Settings...Languages & FrameworksFlutter로 이동하여 Flutter SDK pathFVM 심볼릭 링크의 절대 경로를 입력한다.

Android Studio &gt; Settings... &gt; Languages & Frameworks &gt; Flutter &gt; Flutter SDK path

Android Studio 내에서 Flutter SDK 루트 디렉터리무시하려면 .idea/workspace.xml에 아래의 코드를 추가한다.

<component name="VcsManagerConfiguration">
  <ignored-roots>
    <path value="$PROJECT_DIR$/.fvm/flutter_sdk" />
  </ignored-roots>
</component>

만일 작동하지 않는다면, Settings...EditorFile TypesIgnored Files and Foldersflutter_sdk를 추가한다.

Android Studio &gt; Settings... &gt; Editor &gt; File Types &gt; Ignored Files and Folders

기본 명령어

releases

설치 가능모든 Flutter SDK 릴리즈출력한다.

fvm releases

install

Flutter SDK 버전설치한다. Flutter 릴리스 또는 채널을 설치할 수 있는 기능을 제공한다.

fvm install # 프로젝트 설정에서 찾은 Flutter SDK 버전 설치
fvm install <version> # 지정한 버전의 Flutter SDK 버전 설치

list

설치된 Flutter SDK 버전들출력한다. FVM에서 사용하는 캐시 디렉터리출력한다.

fvm list

use

프로젝트에서 사용하려는 Flutter SDK 버전지정한다. 버전이 존재하지 않으면 설치할 것인지 묻는 메시지가 나타난다.

fvm use <version>

새 프로젝트를 시작하고 fvm flutter create를 사용할 계획이라면 --force 옵션을 사용해야 한다.

global

프로젝트 단위가 아닌 전역 Flutter SDK 버전지정한다.

fvm global <version>

doctor

환경프로젝트 구성에 대한 정보출력한다.

fvm doctor

remove

지정한 Flutter SDK 버전제거한다. 해당 Flutter SDK 버전을 사용하는 모든 프로젝트에 영향을 미친다.

fvm remove <version>

Flutter 실행

대리 명령(Proxy Commands)

flutter 또는 dart 명령 앞에 fvm을 추가하면 FVM으로 구성된 버전으로 명령을 실행할 수 있다.

Flutter

# flutter <command> 대신 아래의 명령으로 사용
fvm flutter <command>

Dart

# dart <command> 대신 아래의 명령으로 사용
fvm dart <command>

SDK 직접 호출

심볼릭 링크(.fvm/flutter_sdk)를 사용하면 프로젝트에 구성된 버전이 동적으로 호출된다.

# flutter 실행
.fvm/flutter_sdk/bin/flutter run