画像選択等に非常に便利なimage_pickerですが、flutterのバージョンアップ後から今まで動いていたコードが動かなくなりました。今回は原因を解析することができたのでご紹介。
動かなくなったコード
var pickedFile = await state.picker.pickImage(
source: ImageSource.camera,
maxWidth: ConstValues.addImageMaxWidth,
maxHeight: ConstValues.addImageMaxHeight,
imageQuality: ConstValues.addImageReQualityPercent);
動かなくなったコードは上記。ちなみにカメラからでもギャラリーから選択でも落ちるようになってました。
原因
実はimage_pickerはあるバージョンからiOSについてはバージョン依存のあるコントロールを使うようになっていました。flutterプロジェクト側のiOSターゲットが低い場合、この中の動作でimageQualityがうまく機能していないようです。
なのでimage_pickerの新しめなバージョンを使いたい場合にはiOSのビルドターゲットを14.0以上にする必要があります。
Runner.xcworkspaceをXCodeで開き、いろんなところのinfoにあるターゲットOSを14以上に変えていきます。自分は全て14.0で統一しました。
その後、
flutter clean
flutter pub get
を行ってからビルドすると、、問題なく使えるようになりました。