iOS&Androidスマートフォン開発(Swift/Kotlin/React-Native) および Next.js/LaravelをはじめとしたWeb開発ならば、ぜひ創業13年の弊社にお任せください。ワンストップでお届けします。お問合せはこちらから

Flutterでshared_preferencesを使っているときに生じたエラーと解決方法

  2024年10月25日 13:01 / - PV

yuku_tasのアイコン

こんにちは、Webサービス開発者のyuku_tasです。

簡単なプロフィール: MoldSpoon Inc.代表。開業から15年、業界に携わって20年。Webサイト/iOS/Androidアプリ開発から、データ分析業務・コンサル業務、ベンチャーから保険会社まで様々な案件を個人会社の形で請け負ってまいりました。詳しくはこちら

Flutter、便利ですよね。最近スマホアプリを作る際にはネイティブではなく、もっぱらこちらを提案しています。おまけに書き味もいいので気に入っています。

今日はそんなFlutterに関係する小ネタとなります。

トラブルの概要

flutter run

shared_preferencesを使ったプログラムを動かそうとしたところ以下のエラーが出ました。

Launching lib/main.dart on iPhone 15 Pro in debug mode...
Running pod install...                                             24.8s
Running Xcode build...
Xcode build done.                                           276.6s
Failed to build iOS app
Error (Xcode): Invalid depfile: /Users/yuta/flutter-srcs/xxxx/.dart_tool/flutter_build/0d92fc18c6b337662fe2d1ba24694591/kernel_snapshot_program.d

Google検索で解決方法を探してみる

これを、Google検索して似たような事例でビルドが通らないケースを探しました。「Error (Xcode): Invalid depfile」といったキーワードで。

すると、

Invalid depfile: Flutter

こちらのポストが見つかりました。

  • flutter pub clean および fluter pub get した後に flutter runをやりなおせ
  • ios/Podfile.lockやPodsを削除した後 pod install をやりなおせ
  • .dart_toolの下の flutter_build または、buildの下の乱数で生成されたフォルダを消した後上記2行をやりなおせ

ということでしたが、全てやっても私の環境ではダメ。

ダメ元で、dartのキャッシュを消す。

dart cache clean

もやりましたがダメでした。

試行錯誤して解決方法を見つけた

その後、 **gitのコミットをだいぶ前まで戻し、ステップバイステップで原因究明を試みました ** が、どうもshared_preferences をやっているところから問題が生じているようです。

そこで、一度消して、VSCodeのflutterプラグインの補足機能で呼び出し元を以下のように定義してもらった 途端ビルドが通るようになりました。。

before)
import 'package:shared_preferences.dart';

after)
import 'package:shared_preferences/shared_preferences.dart';

まとめ

何が原因でこうなっちゃってたんでしょうね、、 **もしかしたら生成AIに頼ったからかも? **


皆さんも便利な生成AIの利用に際しては安易に考えず、必要に応じて公式ドキュメントにあたるなど 徹底して参りましょう...

自戒も兼ねて今回のポストでした。もし同じトラブルに遭った方がおられれば、何かの参考になれば幸いです。最後までご覧いただきありがとうございました。

Share Me!