📑
【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