Firebase Apple SDK 13でCocoaPods配布が終了|Swift Package Managerへの移行手順
FirebaseがApple向けSDK 13.0.0を公開し、CocoaPodsでの配布を終えた
Googleのアプリ開発基盤Firebaseは、2026年10月7日(米国時間)にiPhoneやMac向けのSDK「Firebase Apple SDK 13.0.0」を公開しました(GitHubのリリース)。13.0.0は、Xcode標準のライブラリ管理機能であるSwift Package Manager(以下SPM)専用のリリースです。
これまで多くのiOSアプリは、CocoaPodsというライブラリ管理ツールでFirebaseを取り込んできました。Firebaseの移行ガイドによると、CocoaPodsへの新しい版の公開は2026年10月で終わり、Firebase 12がCocoaPodsで入手できる最後のメジャーバージョンになります。CocoaPods自体も、CocoaPodsの公式ブログで、2026年12月2日に新しいライブラリやバージョンの登録受付を止める予定を示しています(11月1〜7日に試験運用)。
この記事では、13.0.0で必要になる環境と書き換えが必要なコードを整理し、CocoaPodsで作った最小のアプリをSPMへ移して動かした結果を紹介します。読み終えると、自分のアプリを今SPMへ移すか、当面12.xのまま使うかを決められます。
3つの要点
Firebaseの更新を受け取り続けるには、SPMへの移行が必要
13.0.0の入手方法
SPMのみ
CocoaPodsで入手できる最新は12.19.0。ZipとCarthageの配布は、Analyticsの修正を含む13.0.1から。
必要な開発環境
Xcode 26.2以上
アプリの対応OSはiOS 15以上。
CocoaPodsで導入済みのアプリ
12.xのまま動く
13以降の修正と新機能は届かない。Xcode 27では設定の追加が必要だった。
13.0.0を使うにはXcode 26.2以上とiOS 15以上が必要
13.0.0のリリースノートでは、開発環境とアプリが対応するOSの最低ラインが引き上げられました。Xcode 26.2より古いXcodeでは、Firebaseのパッケージを読み込む段階で止まります。
Firebase Apple SDK 13.0.0の最小要件
開発環境
Xcode 26.2
Swiftコンパイラー6.2.3を含む版
アプリの対応OS
iOS 15
tvOS 15、macOS 11、watchOS 8
Firestoreを使う場合
C++17
Build Settingsの「C++ Language Dialect」を確認
通信ライブラリ
GTMSessionFetcher 4.0
PodfileやPackage.swiftで3.xを指定していたら更新
出典:Firebase Apple SDK リリースノート 13.0.0(2026年10月7日)
13.0.0で削除・名前変更されたAPIの書き換え
13.0.0では、以前から非推奨になっていたAPIがまとめて削除されました。アプリのコードに影響する変更を、変更前と変更後で並べます。
13.0.0で書き換えが必要なコード
AI機能のライブラリ名
FirebaseAI → FirebaseAILogic(パッケージの製品名と import の両方)
Vertex AI経由の呼び出し
Backend.vertexAI() → Backend.agentPlatform(location:)。location を省略したときの地域は us-central1 から global に変わるので、これまでの地域を使うなら location: "us-central1" を指定する。リリースノートは、新しいGeminiモデルの多くがus-central1で使えない点も注意している
AIに渡すツールの型名
Tool → GenerativeModel.Tool。型名を書いている箇所を置き換える
削除されたライブラリ
FirebaseMLModelDownloader と、Appleの端末内AIと組み合わせる旧API(HybridModel など)
通知とアプリ内メッセージのリンク
画面単位の処理(SceneDelegate)を使うアプリでは、通知やアプリ内メッセージのリンクがSceneDelegate側で処理されるようになった。AppDelegateにリンクの処理を書いているなら、リンクを開いたときの動作を確かめる
パッケージの製品名に FirebaseAI を指定したままにすると、ビルドの前の依存関係を解決する段階でXcodeが止まります。手元のサンプルでは、次のエラーが出ました。
xcodebuild: error: Could not resolve package dependencies:
product 'FirebaseAI' required by package 'sample-oldai' target 'Sample' not found in package 'firebase-ios-sdk'.
このエラーが出たら、Package.swiftやXcodeの「Frameworks, Libraries, and Embedded Content」で製品を FirebaseAILogic に差し替え、コードの import FirebaseAI も import FirebaseAILogic に直します。
CocoaPodsのままだと12.19.0から先へ更新できない
CocoaPodsで作った最小のiOSアプリを用意して、CocoaPodsのまま使い続けた場合の動きを確かめました(2026年10月18日、Apple M4のMac、CocoaPods 1.16.2)。ビルドは移行先のXcode 27.0を基本にし、比較のためXcode 26.4.1でも試しています。Firebaseの範囲を '~> 12.0' にして pod install すると、12.19.0が入り、Firebaseからの非推奨の案内が表示されます。
[!] FirebaseCore has been deprecated in favor of the Firebase Apple SDK via Swift Package Manager. Existing CocoaPods versions will remain available and installations will remain functional, but new versions will no longer be published to CocoaPods after October 2026.
範囲を '~> 13.0' に変えると、CocoaPodsは条件に合う版を見つけられずに止まります。CocoaPodsの配布サーバーに登録されたFirebaseCoreの最新版も12.19.0でした。
[!] CocoaPods could not find compatible versions for pod "FirebaseCore":
In Podfile:
FirebaseCore (~> 13.0)
None of your spec sources contain a spec satisfying the dependency: `FirebaseCore (~> 13.0)`.
もう一つ、Xcodeの版によってビルド結果が変わりました。同じCocoaPodsのプロジェクトは、Xcode 26.4.1ではビルドに成功し、Xcode 27.0では次のエラーで失敗しました。Firebaseが使う部品GoogleUtilitiesの対応OSがiOS 12からになっていて、Xcode 27が受け付けるiOS 15以上の範囲から外れるためです。
error: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 12.0, but the range of supported deployment target versions is 15.0 to 27.0.x. (in target 'GoogleUtilities' from project 'Pods')
Podfileの最後に次の処理を足し、CocoaPodsで入れた部品の対応OSを15.0にそろえると(すでに post_install がある場合は、その中へ内側の処理だけを足します)、Xcode 27.0でもビルドが通りました。SPMへ移すまでの間、CocoaPodsのままXcode 27へ上げたいときの対処として使えます。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
end
end
end
CocoaPodsからSPMへ移す4つの手順
Firebaseの移行ガイドの手順に、13.0.0の要件確認とコードの書き換えを加えて、同じサンプルアプリをSPMへ移しました。Firebase以外にCocoaPodsで入れているライブラリがある場合は、先にそれぞれがSPMに対応しているかを確認します。同じターゲットでCocoaPodsとSPMを混ぜると、依存関係が循環してビルドが失敗することがあると、ガイドは注意しています。
CocoaPodsからSPMへ移す手順
01 XcodeとアプリのiOSの版を確認
Xcode 26.2以上を使い、アプリのMinimum Deployments(対応OSの下限)をiOS 15以上にする。Podfileに直接書いたFirebaseのPod名を控えておく。
02 Xcodeを閉じて pod deintegrate を実行
プロジェクトのフォルダーで実行すると、CocoaPodsが追加した設定とPodsフォルダーが取り除かれる。CocoaPodsが作った .xcworkspace は残るので削除する(ほかのプロジェクトをまとめたワークスペースなら、Podsの参照だけを外す)。PodfileとPodfile.lockも、CocoaPodsを使わなくなったら削除してよい。
03 File > Add Package Dependencies でFirebaseを追加
.xcodeproj を開き、URLに https://github.com/firebase/firebase-ios-sdk を入れる。控えたPodに対応する製品を選ぶ(FirebaseAuth なら FirebaseAuth、Firebase/Auth のような書き方なら FirebaseAuth)。選んだ製品をアプリのターゲットへ追加する。
04 コードとスクリプトを直してビルド
前の節で挙げたAPIを書き換える。CrashlyticsのRun Scriptが ${PODS_ROOT} を指していたら、Crashlyticsの導入ガイドにあるSPM用のパスへ直す。「ライブラリが見つからない」と出たら、Build PhasesのLink Binary with Librariesに製品が入っているかを見る。
手元では、pod deintegrate の実行後に「Project has been deintegrated. No traces of CocoaPods left in project.」と表示され、ワークスペースが残っている旨の注意も出ました。手順03のパッケージ追加は、Xcodeの画面操作の代わりに、設定ファイルからXcodeプロジェクトを作るツールXcodeGenで同じ依存関係(firebase-ios-sdk 13.0.0のFirebaseCore)を設定しました。Xcode 27.0でビルドし、iPhoneのシミュレーターで起動した画面が次です。

サンプルでは、FirebaseCoreの FirebaseVersion() が返す版番号を画面とログへ出しています。移行直後に次の1行をデバッグ用に入れておくと、13.0.0が実際に組み込まれたかをすぐ確認できます。
print("Firebase SDK version:", FirebaseVersion())
Firestoreを使わないアプリはトレイトを外すと展開後のバイナリ容量が約6分の1になった
13.0.0では、SPMの「トレイト」という仕組みで、使わない機能をパッケージから外せるようになりました。最初に用意されたのは、データベース機能Firestoreを外すトレイトです。Firestoreを外すと、Firestoreが通信に使う大きな部品gRPCとAbseilを取得しなくなります。
FirebaseCore、Authentication、AI Logicだけを使う最小のパッケージで、トレイトの有無による違いを測りました。標準の設定では依存するパッケージがFirebase本体を含めて13個、展開後のバイナリ(.build/artifacts)が約1,085MBでした。Firestoreのトレイトを外すと、依存するパッケージは11個、展開後のバイナリは約191MBに減りました。

Swiftパッケージでは、依存関係の指定に traits: [] を足すとFirestoreを外せます。traits: [] は既定で有効なトレイトをすべて外す指定で、13.0.0の既定のトレイトはFirestoreだけです。この書き方は、自分のPackage.swiftの先頭にある swift-tools-version が6.1以上のときに使えます。
.package(
url: "https://github.com/firebase/firebase-ios-sdk.git",
exact: "13.0.0",
traits: []
),
Xcodeのプロジェクトでは、FirebaseのPackage.swiftの説明どおり、プロジェクト設定の「Package Dependencies」でFirebaseの「Traits」からFirestoreのチェックを外します。CIでビルドのたびにパッケージを取り直す環境では、gRPCとAbseilのダウンロードと展開が要らなくなります。図の値は展開後のディスク容量で、ダウンロード量はこれより小さくなります。
移行の前に自分のプロジェクトで確認すること
ここまでの内容を、プロジェクトの状況ごとの確認項目にまとめました。
状況別の確認項目
PodfileでFirebaseを入れている
Firebase以外のPodがSPMに対応しているかを確認し、対応していれば pod deintegrate からSPMへ移す。
SPMに対応していないPodが残る
移行ガイドが示すとおり、Firebaseだけを配布用のZipから手動で組み込むか、代わりのライブラリが見つかるまで12.xで運用する。
当面CocoaPodsのままXcode 27へ上げる
Podfileの post_install で対応OSを15.0にそろえ、ビルドが通るかを確かめる。
FirebaseのAI機能を使っている
FirebaseAIをFirebaseAILogicへ、vertexAIをagentPlatformへ置き換え、地域の指定を確認する。
Firestoreを使っていない
SPMへ移したら、Package DependenciesのTraitsでFirestoreを外す。
FlutterやUnityでFirebaseを使っている場合は、各フレームワーク向けのFirebaseを最新版へ上げると、iOS側のライブラリ管理もSPMへ切り替わると移行ガイドは案内しています。12月2日はCocoaPodsへライブラリを登録する側の期限で、12.19.0までのFirebaseは、CocoaPodsの配布の仕組みが動いている限り、その後も入手して使えます。13以降の修正を受け取るには移行が要るので、まずは手元のプロジェクトで pod deintegrate からビルドまでを一度通し、移行にかかる作業の量を見積もってください。
参考資料
- firebase-ios-sdk「Firebase Apple 13.0.0」(2026年10月7日):公開日、SPM専用リリース。
- Firebase Apple SDK リリースノート(10月18日閲覧):最小要件、削除されたAPI、トレイト。
- Firebase「CocoaPods deprecation」(2026年10月15日更新):配布終了の時期、移行手順。
- CocoaPods Blog「CocoaPods Trunk Read-only Plan」:登録受付を止める日程。
- firebase-ios-sdk 13.0.0のPackage.swift:Firestoreトレイトの定義と外し方。











