개요
flutter upgrade
플러터의 버전을 업그레이드 해야 할 때 터미널에서 'flutter updagrade' 키워드를 사용하여 버전업을 진행한다.
그런데 플러터 버전 업그레이드에는 채널에 따른 종류가 있다.
우선 내가 발생한 문제로 예를 들어 보겠다.
회사 컴퓨터에서 플러터 코드를 짜면 WIllPopScope가 마이그레이션을 하라는 안내 문구가 출력된다.
WillPopScope를 PopScope로 마이그레이션을 하고 깃에 푸쉬한 뒤,
집 컴퓨터에서 해당 플러터 코드를 깃에서 풀하게 되면 PopScope 클래스가 인식 자체를 하지 못한다.
오히려 WillPopScope를 작성해줘야 인식하는 상황이 발생한다.
flutter --verison
flutter upgrade --force
버전을 확인 및 플러터 강제 업그레이드를 진행해보았지만
둘 다 현재 최신버전임에도 불구하고 이러한 현상이 발생하는 것이다.
내 경우 원인은 master 버전과 stable 버전으로 인한 새로운 기능 사용(마이그레이션 포함) 유무 때문이였다.
Flutter SDK Upgrade (flutter upgrade)
flutter upgrade
말그대로 Flutter SDK를 최신 버전으로 업그레이드 하는 명령어이다.
코드가 변경 될 경우, 코드 작성 시 알림 창에 마이그레이션 가이드를 제시해주기도 한다.
위에서 언급한 WillPopScope의 클래스의 경우를 확인해보자.
아래와 같이 마이그레이션 가이드를 제공해준다. (~~~Use PopScope instead~~~)
그런데 업그레이드에도 채널마다 다르게 작용된다.
이게 무슨 말이냐면, 현재 채널은 총 3개의 형태가 제공(stable, beta, master)되고 있는데,
채널마다 적용되는 최신 버전의 기준이 다르다는 것이다.
Flutter Channel
채널에 대해 알아보자
stable channel
안정적이고 신뢰할 수 있는 버전을 제공하는 채널이다.
이 채널은 약 3개월마다 주기적으로 채널 업데이트를 진행한다.
플러터 팀의 플러그인과 패키지를 안정적인 최신 버전으로 업그레이드를 해준다.
다만 새로운 기능이나 버그 수정은 포함되지 않기 때문에 새로운 기능을 이용 할 수 없다.
별 다른 사유가 없다면 가장 안정적이므로 stable 채널을 설정하는 것을 권장한다.
beta channel
가장 최신 버전의 안정적인 버전을 제공하는 채널이다.
베타 라는 단어 때문에 테스트 채널 같이 들릴 수도 있겠지만,
이 채널은 모든 공개 테스트를 통과한 '가장 최신 버전의' stable 채널이라고 생각하면 된다.
이 채널은 매월 주기적으로 채널 업데이트를 진행한다.
새로 발견된 중요한 문제를 해결하기 위해 정기적인 핫픽스를 업데이트하는 채널이기도 하다.
쉽게 말하면 안정적인 stable 버전에서 테스트가 된 새로운 기능이나 버그 수정이 포함된 버전을 의미한다.
새로운 기능을 사용할 수 있다는 장점이 있지만, 새로운 기능들에 대한 안정성이 보장되지 않을 수 있다는 단점이 있다.
master channel
최신 개발 버전을 제공하는 채널이다.
가장 최신의 기능들을 사용할 수 있다는 장점은 있지만,
철저하게 테스트되지 않았으며 심각한 오류를 발생할 수도 있으므로 추천하지는 않는다.
채널 변경하기
플러터의 채널은 다음과 같은 명령어로 변경할 수 있다.
flutter channel
채널을 변경 후에는 해당 채널이 갖는 최신 버전으로 업그레이드해주는 것이 좋다.
예를 들어 stable 채널로 변경 후 최신 버전을 업그레이드하고자 한다면 아래의 명령어 순으로 입력하면 된다.
flutter channel stable
flutter upgrade