Flutter 패키지 버전관리

KyleKim96·2023년 4월 6일
0

이번에 패키지 종속성 관련해서 플러터를 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개의 댓글