flutter doctor
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.5.3, on macOS 12.0.1 21A559 darwin-arm, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] Android Studio (version 2020.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.3)
[✓] VS Code (version 1.62.3)
[✓] Connected device (2 available)
発生した事象
iOSのアプリCacheディレクトリにファイルを書き込むと、低確率でファイル書き込みが静かに失敗する。
file.writeAsBytes( binary, flush: true);
Consoleログ出力にはエラーはなく、例外が発生しない。
書き込みは失敗するため、書き込んでもファイルが存在しない(File.existsがfalseとなる)し、appendモードの場合はファイル長(File.length())が想定よりも短くなる。
Issue
おそらくこれ
github.com
対応
たまに静かにランダムに失敗するので、成功が確定するまで書き込み続ける。
ログファイルのように次々appendするようなパターンでは二重書き込みが怖いけど、今回の自分のユースケースでは書き込みをリトライすることでワークアラウンドした。
その他
正しい対応の仕方があれば教えてほしい(マジで困る)