목차
개요
여러 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 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로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.