CocoaPods could not find compatible versions for pod "FirebaseCoreExtension":を解決する

# はじめに
FlutterでFirestoreを使うときに必ずと言っていいほどぶつかるのが、ビルドが長すぎる問題である。

https://blog.okaryo.io/20220820-ios-build-performance-improvement-in-flutter-using-firestore#google_vignette

このように多くの人が[firestore-ios-sdk-frameworks](https://github.com/invertase/firestore-ios-sdk-frameworks)を導入していると思われる。

この記事は`firestore-ios-sdk-frameworks`導入時に発生したエラーの解決までも道のりである。

# 何か依存関係のエラー起きる

```ruby:ios/Podfile
target 'Runner' do
  use_frameworks!
  use_modular_headers!

  pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '11.2.0'
  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
  target 'RunnerTests' do
    inherit! :search_paths
  end
end
```

このようにfirestore-ios-sdk-frameworksを取得するようにしました。
`pod install --repo-update`で各ライブラリの情報（バージョン、依存関係など）を更新した上でinstall

しかし、、、エラーになりました。。

```console
 $ pod install --repo-update                                                       (git)-[master]
Updating local specs repositories
Analyzing dependencies
Pre-downloading: `FirebaseFirestore` from `https://github.com/invertase/firestore-ios-sdk-frameworks.git`, tag `11.2.0`
cloud_firestore: Using Firebase SDK version '11.2.0' defined in 'firebase_core'
firebase_auth: Using Firebase SDK version '11.2.0' defined in 'firebase_core'
firebase_core: Using Firebase SDK version '11.2.0' defined in 'firebase_core'
[!] CocoaPods could not find compatible versions for pod "FirebaseCoreExtension":
  In snapshot (Podfile.lock):
    FirebaseCoreExtension (= 11.3.0, ~> 11.0)

  In Podfile:
    FirebaseCoreExtension (~> 11.3.0)

    FirebaseFirestore (from `https://github.com/invertase/firestore-ios-sdk-frameworks.git`, tag `11.2.0`) was resolved to 11.2.0, which depends on
      FirebaseFirestoreBinary (= 11.2.0) was resolved to 11.2.0, which depends on
        FirebaseCoreExtension (= 11.2.0)
```

なんでや？

```yaml:pubspec.yaml
dev_dependencies:
  flutter_test:
    sdk: flutter

  firebase_core: ^3.6.0
  firebase_auth: ^5.3.1
  cloud_firestore: ^5.4.4
```

`firebase_core`は`^3.6.0`
iOS SDK をバージョン 11.2.0 にアップデートされているはず。。

![Screenshot 2024-10-07 at 12.47.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/57293930-feb4-e161-255f-7c6583cb2364.png)

https://pub.dev/packages/firebase_core/changelog#360


謎である。

# FirebaseCoreExtensionもバージョン指定

```ruby:ios/Podfile
target 'Runner' do
  use_frameworks!
  use_modular_headers!

  pod 'FirebaseCoreExtension', '~> 11.2.0'
  pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '11.2.0'
  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
  target 'RunnerTests' do
    inherit! :search_paths
  end
end
```

`FirebaseCoreExtension`も`~> 11.2.0`でバージョンを直接

```console
rm Podfile.lock
```

Podfile.lockを削除

```console
pod install --repo-update
```

再度インストール

これで無事直りました！！

# "Keep Xcode Version" vs. "Use Version on Disk"

インストールが成功すると、以下のような問いかけが出ることがあるかと

![Screenshot 2024-10-07 at 14.09.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/890522e9-72f8-2dc0-7cfd-cc3492ba32b9.png)



Xcodeで開いているプロジェクトファイル（Runner.xcworkspace）が他のアプリケーション（ここではCocoaPodsコマンド）によって変更されたために発生しています。

CocoaPodsの`pod install`や`pod update`を実行した直後にこのメッセージが出た場合、CocoaPodsによって更新された内容（ディスク上のファイル）を反映させたいので`Use Version on Disk`を選択しましょう