Sua Blog
Flutter 3점대 버전 업그레이드
2022-07-22 — flutter
Flutter upgrade
Flutter 3 소개
데스크탑앱
- macos와 linux 앱을 스테이블하게 지원함으로써 모든 데스크탑 플랫폼에서 생산이 가능해졌다.
- macOS 데스크탑 앱은 기존 Intel 기반 Mac과 Apple chip 모두 지원하는 바이너리로 구축되었다.
모바일
- 폴더블 폰 지원. MediaQuery에 접힌 부분, 접힘 여부, 잘린 부분에 대한 상태가 추가되었다.
- 60hz > 120hz까지 렌더링 빈도 증가되었다. 스크롤링과 같은 빠른 애니메이션이 더 부드러워졌다.
- flutter build ipa 명령에 ios 릴리스 옵션이 추가되었다. 앱 출시를 위해 xcode를 열 필요가 없어졌다.
- gradle 버전 업데이트. 기존 프로젝트는 수동으로 범프해야한다.
Flutter 3로 업데이트
기존 버전을 2.5.1을 쓰고 있었는데 3.0.5로 업데이트 했다.
# 최신 버전으로 업데이트
flutter upgrade
# pubspec.yaml 파일 안에 있는 dependencies를 모두 최신 호환 버전으로 업그레이드
flutter pub upgrade
업그레이드 후 의존성 패키지들도 모두 최신버전으로 업데이트 했다.
버전 바뀌며 달라지는 부분(함수명 등)을 PROBLEMS에서 확인 후 수정한다.
IOS 빌드
podfile과 flutter 캐시 삭제 및 재설치 진행.
IOS 빌드 에러 대응 참고
- pod install시 —repo update옵션 추가
pod install --repo update
ide와 시뮬레이터 새로 키고 빌드.

Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
null-aware관련 워닝.
플러터 릴리즈 노트를 참고하여 코드 업데이트 했다.
dart fix --apply

IOS 빌드는 정상적으로 되었다.
안드로이드 빌드
Flutter 3점대로 업데이트 하면 gradle 버전을 변경해줘야한다.
android > build.gradle
// kotlin version
// ext.kotlin_version = '1.5.31'
ext.kotlin_version = '1.6.0'
// gradle version
// classpath 'com.android.tools.build:gradle:4.2.2'
classpath 'com.android.tools.build:gradle:7.0.2'
android > app > build.gradle
// compileSdkVersion 30
compileSdkVersion 31
// minSdkVersion 20
minSdkVersion 23
android > gradle > wrapper > gradle-wrapper.properties
android > gradle > wrapper > gradle-wrapper.properties
// distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip