Flutter + Firebase + GoogleSignIn で Pod install が通らない依存関係エラー対処法
原因:依存関係の Logger バージョン競合
Flutterプロジェクトで Firebase と Google Sign-In を一緒に使おうとしたとき、pod install が CocoaPods の依存関係エラーで止まることがある。
え、FlutterFireの公式通りやったのにビルド失敗するんだけど……。
これは firebase_core が Firebase SDK 10.x に依存している一方で、google_sign_in_ios は 8.x 系の GoogleUtilities に依存していて、GoogleUtilities/Logger のバージョンが競合してしまうのが原因や。
Podfile のバージョン競合やな。バージョンの整合性を取ることで回避できるで。
エラーメッセージの確認
エラーメッセージを見てみると、こんな感じの記述が出てくる。
firebase_core は GoogleUtilities/Logger (~> 7.12)、google_sign_in_ios は Logger (= 8.0.0) って書いてある!
[!] CocoaPods could not find compatible versions for pod "GoogleUtilities/Logger":
firebase_core → Firebase/CoreOnly (= 10.25.0) → GoogleUtilities/Logger (~> 7.12)
google_sign_in_ios → GoogleSignIn (~> 8.0) → GoogleUtilities/Logger (= 8.0.0)
つまり、7.12系を要求するパッケージと、8.0.0固定を要求するパッケージが共存できない状態や。
Logger のバージョン差異で Pod install が詰む、というやつやな。
対策:firebase_coreとgoogle_sign_in_iosのバージョンを上げる
まず pubspec.yaml を以下のように修正しよう。
今のバージョンじゃだめなん?最新にしたほうがいいの?
dependencies:
firebase_core: ^2.33.0
firebase_auth: ^4.17.4
google_sign_in: ^6.1.5
それから以下のコマンドでキャッシュを一掃して再インストールしてみてくれ。
Flutter の依存関係 → Pod の再構築まで一気にやろう!
flutter clean
rm ios/Podfile.lock
rm -rf ios/Pods
flutter pub upgrade
flutter pub get
cd ios
pod install
cd ..
flutter run
まとめ
Flutter + Firebase + GoogleSignIn の組み合わせで pod install に失敗するのは、ほぼ間違いなく CocoaPods の依存関係バージョンの不一致が原因や。
依存関係エラー出たら慌てずバージョン確認!古いままのバージョンや lock ファイルが残ってないかも忘れずチェックやで!


コメント