Flutter + Firebase + GoogleSignIn で Pod install が通らない依存関係エラー対処法

Firebase

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 ファイルが残ってないかも忘れずチェックやで!

コメント

タイトルとURLをコピーしました