Flutter SDK와 Dart 버전 충돌 해결하기 (kakao_flutter_sdk_user)
이 글에서 다루는 내용
이 글에서는 Flutter 프로젝트에서 kakao_flutter_sdk_user ^2.0.0 패키지를 추가했을 때 발생한 Dart SDK 버전 불일치 문제의 원인과, Flutter SDK 전역 업그레이드·FVM을 활용한 프로젝트 단위 고정·패키지 다운그레이드 세 가지 해결 전략을 비교합니다.
발생한 문제
flutter build appbundle --release 실행 시 의존성 해석 단계에서 실패가 발생했습니다.
The current Dart SDK version is 3.8.1.
Because kakao_flutter_sdk_user 2.0.0+1 requires SDK version ^3.9.0 and no versions of kakao_flutter_sdk_user match >=2.0.0 <2.0.0+1 or >2.0.0+1 <3.0.0, kakao_flutter_sdk_user ^2.0.0 is forbidden.
So, because wordro depends on kakao_flutter_sdk_user ^2.0.0, version solving failed.
현재 설치된 Dart 3.8.1이 kakao SDK가 요구하는 ^3.9.0을 만족하지 못하는 상황입니다. Flutter SDK와 Dart SDK는 묶음이므로 Flutter 버전 자체를 올리거나 패키지 버전을 낮춰야 합니다.
해결 옵션 비교
옵션 1 — Flutter SDK 전역 업그레이드
flutter upgrade
가장 간단한 방법이나, 이 머신의 모든 Flutter 프로젝트가 영향을 받습니다. 과거 프로젝트에서 낮은 Flutter 버전을 유지해야 할 필요가 있다면 문제가 됩니다.
옵션 2 — FVM으로 프로젝트 단위 버전 고정 (권장)
brew tap leoafarias/fvm
brew install fvm
fvm install 3.41.6
fvm use 3.41.6
이후 빌드는 fvm flutter build appbundle --release처럼 fvm 접두사를 붙여 실행합니다. 프로젝트 루트의 .fvm/ 디렉터리에 해당 버전이 고정되므로 다른 프로젝트에 영향을 주지 않습니다.
옵션 3 — 패키지 다운그레이드
flutter pub add kakao_flutter_sdk_user:^1.10.0
Flutter 버전은 유지하되 SDK v1 API로 회귀합니다. v2 신규 기능을 쓰지 않는다면 유효한 선택이지만 API가 일부 달라 기존 코드 수정이 필요할 수 있습니다.
선택 결과
저는 옵션 2(FVM) 를 선택했습니다. 로그인 기능을 최근 추가한 상태라 v2 API 유지가 이점이었고, 향후 다른 프로젝트와의 Flutter 버전 분리도 필요했기 때문입니다.