📑

【Flutter/Dart】画像アップロードするとき、runnerが予期しない理由で落ちる

に公開

今回発生したエラー

アプリ作成中、以前と同じように画像をアップロードしようとすると

と訳のわからぬ理由で落とされます。

原因

原因として考えられるのが、ios17.5へアップデートしたことです。
とりあえずchatGPTに聞いてみてそれに従ってみます。

解決策

1.flutterとdartのアップデート
まあまずはここからですね。ターミナルで

flutter upgrade

を入力しますが以前解決できないので次へ

2.Cocoapodsの再インストール

cd ios//プロジェクトのiosフォルダへ移動
pod install//cocoapodsのインストール
cd ..//親ディレクトリへ戻る

まだ解決しないので次へ

3.flutterを再ビルド
コマンドで以下を入力します

flutter clean//flutterのキャッシュを消す
flutter pub get
flutter build ios

最終的な解決策

しかし問題は解決せず。画像を送ってみて原因を探ってみます。
ほどんどは同じ返答でしたが、iosシュミレータとinfo.plistに原因がある可能性が挙げられました。
画像をアップロードを実装する際iosの場合はinfo.plistに書き込む必要性があるので、そこに原因があると考えました。
アップロードする方法を検索し、確認してみるとアップロード情報がありませんでした!!!ということで以下のようにコードを追加していきます。

<?xml version="1.0" encoding="UTF-8"?>
//...省略
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
    #ここから
	<key>NSPhotoLibraryUsageDescription</key>
	<string>This app requires to access your photo library</string>
	<key>NSCameraUsageDescription</key>
	<string>This app requires to add file to your camera</string>
	<key>NSMicrophoneUsageDescription</key>
	<string>This app requires to add file to your photo library your microphone</string>
    #ここまで
</dict>
</plist>

これによりアップデートができました。
おそらく、コードを別のファイルにした時にinfo.plistに変えた時に互換性があると思っていたのが原因ですね。くそー。

Discussion