프로젝트를 진행하다 보니 flutter sdk 버전이 상이한 케이스가 발생하였다. 물론 flutter 기본 기능으로도 커버가 가능하지만... 더 쉬운 방법은 없을까 고민하던 중 FVM 이라는 것을 발견하였다.
아래의 명령어를 사용하여 설치 시작!
% dart pub global activate fvm
git을 사용한다면 .gitignore에 아래를 추가해주자!
.fvm #개인적으로는 이 구문을 추천
.fvm/flutter_sdk #공식 문서에서 요청한 구문
.gitignore : .gitignore파일이란 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일이다. git으로 프로젝트를 관리할 때, 그 프로젝트 안의 특정파일들은 Git으로 관리할 필요가 없는 경우 사용한다.
vscode를 사용한다면 .vscode/settings.json을 아래와 같이 수정/추가하자!
command + shift + p 를 누르면 커맨트 팔레트가 나온다. 여기에 setting.json을 검색하면 쉽게 찾을 수 있다.
{
"dart.flutterSdkPath": ".fvm/flutter_sdk",
// Remove .fvm files from search
"search.exclude": {
"**/.fvm": true
},
// Remove from file watching
"files.watcherExclude": {
"**/.fvm": true
}
}
settings.json : vscode의 설정을 담은 파일이다. 내용을 직접 편집하여 설정할 수 있다.
fvm command를 사용하기 전에 path를 설정해 주어야 한다.
vi $HOME/.zshrc
을 입력한다.export PATH="$PATH":"$HOME/.pub-cache/bin"
를 입력한다.현재 사용이 가능한 flutter sdk 버전 리스트를 볼 수 있다. 어떤 sdk를 다운로드 할지 확인하도록 하자.
% fvm releases
flutter sdk channel 도 확인이 가능하다.
available flutter sdk list를 확인하였으니 이제 install을 하도록 하자.
% fvm install - # Installs version found in project config
% fvm install {version} - # Installs specific version
% fvm install 3.0.0
설치된 flutter sdk list를 확인할 수 있다.
% fvm list
% fvm use {version}
% fvm use 3.0.0
{
"dart.flutterSdkPaths": ["/Users/nahyeongim/fvm/versions"],
// Remove .fvm files from search
"search.exclude": {
"**/.fvm": true
},
// Remove from file watching
"files.watcherExclude": {
"**/.fvm": true
},
"dart.flutterSdkPath": "/Users/nahyeongim/Documents/Work/SDK/2.10.5"
}
dart.flutterSdkPaths에 설정된 sdk 모습이다.
커맨드 팔레트(command + shift + p)에 flutter:change sdk를 입력하면 나옴.
% fvm remove {version}
% fvm remove 3.0.0
다른 옵션은 --help를 이용하여 확인하여 보자
이제 명령어를 사용하여 flutter를 실행할 수 있다.
간단하게 말하자면 flutter 명령어 앞에 fvm을 붙여 사용한다.
# Use
% fvm flutter {command}
# Instead of
% flutter {command}
aliases를 설정하여 fvm flutter 를 줄여 쓸 수 있다.
vi $HOME/.zshrc
을 입력한다.alias f="fvm flutter"
를 추가한다.# Now you can use "f run" instead of "fvm flutter run"
% f run
기본 flutter sdk 버전을 설정 할 수 있다. (global version)
% fvm global {version}
별명으로 sdk 버전 관리도 가능하다. 참고로 이 설정은 하나의 프로젝트에서만 사용가능하다..
빌드 구성을 정의하고 원하는 대로 전환할 수 있다. 예를 들어, 개발을 위한 하나의 flavors과 생산을 위한 하나의 flavors을 가질 수 있습니다.
혼자 개발할 때보다 대규모의 팀과 협업할때 흔히 사용된다.(고 한다.)
flutter develper는 하나의 앱에 3~5개 정도의 flavor를 설정한다고 한다.(development, production, staging, demo..)
% fvm use {version} --flavor {flavor_name}
% fvm use 3.0.0 --flavor eco
flavor를 보고, 설정하는 데에는 두가지 방법이 있다.
# 1번째 방법
% fvm flavor
# 2번째 방법
% fvm flavor {flavor_name}
% fvm flavor eco