최근 dev channel의 flutter v1.27.0 에서 빌드하면 아래와 같은 에러가 발생했습니다.
Running "flutter pub get" in (myapp) ...
Because no versions of youtube_player_flutter match >7.0.0+7 <8.0.0 and youtube_player_flutter 7.0.0+7 depends on flutter_inappwebview ^4.0.0, youtube_player_flutter ^7.0.0+7 requires flutter_inappwebview ^4.0.0.
And because every version of flutter_inappwebview depends on uuid ^2.0.0, youtube_player_flutter ^7.0.0+7 requires uuid ^2.0.0.
And because uuid >=2.0.0-rc1 <3.0.0-nullsafety.0 depends on crypto ^2.0.0 and every version of integration_test from sdk depends on crypto 3.0.0, youtube_player_flutter ^7.0.0+7 is incompatible with integration_test from sdk.
So, because (myapp) depends on both youtube_player_flutter ^7.0.0+7 and integration_test any from sdk, version solving failed.
pub get failed (1; So, because (myapp) depends on both youtube_player_flutter ^7.0.0+7 and integration_test any from sdk, version solving failed.)
Exited (1)
dependency 에러는 flutter를 쓰다보면 꽤 자주 일어나는 일입니다. 특히 dev channel이라면 더더욱 자주 보죠. 그간 flutter version을 명시적으로 지정하지 않고 최신 버전을 사용하도록 했더니 가끔 이런 문제가 발생하네요.
그래서 아래의 pubspec.yaml과 같이 빌드가 안정적으로 되는 덜 최신 flutter 버전(v1.26.0)으로 고정했더니 문제가 해결되었습니다.
...
environment:
sdk: ">=2.7.0 <3.0.0"
flutter: "^1.26.0-8.0.pre"
...
빌드환경을 업그레이드하는 건 항상 주의가 필요한 부분입니다.