Flutter 패키지 버전관리

KyleKim96·2023년 4월 6일

이번에 패키지 종속성 관련해서 플러터를 2버전에서 3버전으로 업그레이드를 해야하는 상황이 생겨 업그레이드를 진행했습니다.

이것저것 문제는 있었지만 그래도 다행히 1버전에서 2버전으로 올리는 것보다는 스무스하게 올라가서 다행...

문제없이 코드 짜고 앱을 구글/앱 스토어에 올리는데 구글 스토어는 아무 문제없이 잘 올라갔는데 앱스토어는 빌드할 때 flutter_inappwebview 패키지에서 Cannot call value of non-function type 'String? swift에러를 뱉어냈습니다.

flutter_inappwebview 패키지를 찾아보니 Xcode버전이 14버전 이상이여야 하는데 Xcode 14버전은 Mac OS 버전이 12.5이상이여야 한다고합니다.
근데 나의 맥은 너무나도 꾸진 14년도 버전이라 12버전으로 올릴수 없었습니다..

그래서 flutter_inappwebview를 쓰지말고 그냥 webview를 쓰려하는데 kpostal이라는 주소 검색하는 패키지가 inappwebview를 종속하고있어 inappwebview를 쓸수밖에없는상황... 그래서 inappwebview의 다운그레이드를 진행하였습니다.
근데 웬걸..?
다운그레이드를 했는데도 계속 저 에러를 뱉어냈고 pubspec.lock파일에 들어가서 확인해보니 계속 최신버전으로 받고있었습니다...

이유는...!

flutter_inappwebview: ^5.4.3+7
flutter_inappwebview: 5.4.3+7

저는 위 두개의 차이를 몰랐습니다.. 지금까지 flutter를 사용하면서 저걸 몰랐다는게 너무나도 부끄러웠습니다..

caret syntax라는 구문이였고 지금까지 한번도 ^를 한번도 뺀 적이 없어서 그냥 원래 앞에 붙어야 하는 친구라고 생각하고 있었습니다.

flutter_inappwebview: 5.4.3+7 이렇게 선언하면 딱 5.4.3+7버전만 허용한다는 의미이고
flutter_inappwebview: ^5.4.3+7 이렇게 선언하면 5.4.3+7>= <6.0.0 과 같은 의미 였던것.. 그래서 결국 호환되는 가장 최신을 받아오는거였습니다.

그렇게 문제 해결...ㅎ 오늘 퇴근하고 공식 문서 정독해야지...

profile
Flutter 개발자

0개의 댓글