PR
CocoaPodsExpo bareFirebase

The Swift pod `FirebaseCoreInternal` depends upon `GoogleUtilities`, which does not define modules. エラーを修正する方法

use_frameworks-01-1 CocoaPods
スポンサーリンク

開発環境

  • expo: 49.0.13 (bare)
  • @react-native-firebase/app: 18.5.0

エラーメッセージ

cd ios/ && pod install コマンドを実装して失敗すると下記のようになります。

try🐶everything myproject$ npx pod-install
....
Installing RecaptchaInterop (100.0.0)
[!] The following Swift pods cannot yet be integrated as static libraries:

The Swift pod `FirebaseCoreInternal` depends upon `GoogleUtilities`, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies.
Couldn't install Pods. Updating the Pods project and trying again...
> pod install --repo-update
Using Expo modules
...

対応

react-native-firebase v15+ 以降では フレームワークを使用するように CocoaPods を変更する必要があるようです。

フレームワークを使用するように CocoaPods を変更する

firebase-ios-sdk v9+ (react-native-firebase v15+) 以降では、フレームワークを使用するように CocoaPods に指示する必要があります。

ファイル ./ios/Podfile を開き、次の行をターゲット内に追加します (ネイティブ モジュール構成を取得するために、反応ネイティブ Podfile 関数を呼び出す行の直後)。

https://rnfirebase.io/#altering-cocoapods-to-use-frameworksの内容を機械翻訳

実際に⬆︎の内容を反映し問題無くビルドした ios/Podfile の中身 (⬇︎) をご参考ください。

ビルドします。

# Android apps
npx react-native run-android

# iOS apps
cd ios/
pod install --repo-update
cd ..
npx react-native run-ios

ビルドが成功すれば完了です。

それでも直らないとき(2026 年 7 月 追記)

本文の手順(pod install --repo-update でのやり直し)で解決したのは、CocoaPods のスペックリポジトリが古く、更新前の podspec を参照していたケースです。更新して直ったなら、原因はそこにあります。

ただし、これで直らないケースのほうが多いようです。原因と対処を整理しておきます。

なぜこのエラーが出るのか

static frameworks(use_frameworks! :linkage => :static)を使う構成では、Swift のコードが Objective-C のライブラリを import するために、そのライブラリ側にモジュールの定義が必要になります。

Firebase の中には Swift で書かれた pod(FirebaseCoreInternal など)があり、それが Objective-C の pod(GoogleUtilities など)に依存しています。この依存される側がモジュールを定義していないため、CocoaPods が「このままでは静的ライブラリとして組み込めない」と止めているわけです。

つまりFirebase 固有の問題ではなく、静的リンク構成に起因する問題です。同じ理由で AppCheckCoreRecaptchaInterop など、別のパッケージ名でまったく同じ文面のエラーが出ることがあります。エラーに出ている pod 名が違っても、原因は同じです。

検索して出てくる対処法には注意が必要です

このエラーで検索すると、Podfile に次のように書く方法が多数出てきます。

pod 'GoogleUtilities', :modular_headers => true
pod 'FirebaseCoreInternal', :modular_headers => true

エラーメッセージ自身がこの方法を案内しているので、素直に思えます。しかしreact-native-firebase のリポジトリでは、この件を扱う issue が「modular_headers を使おうとする人・説明しようとする人を引き寄せる」という理由で議論をロックされており、Expo 利用者向けの手順が別途案内されています。推奨された対処ではない、ということです。

実際、次のような副作用が報告されています。

  • use_modular_headers! を全体に適用したところ、別のモジュール(UIKit など)のビルドが通らなくなり、結局コメントアウトして戻した
  • 個別指定にすると、Firebase の依存が増えるたびに行を足し続けることになる

その場は通っても、あとで別の形で戻ってきます。

確認する順番

  • スペックリポジトリを更新する — 本文の手順です。まずここから
  • react-native-firebase の公式ドキュメントを確認する — static frameworks を使う場合の指定($RNFirebaseAsStaticFramework など)が案内されています。Expo の場合は expo-build-properties 側の設定と併せて見てください
  • Firebase 側のバージョンを上げる — Firebase の iOS SDK では、Objective-C 側の pod にモジュール定義を追加する変更が提案されています。取り込まれていれば、Podfile を書き換えなくても解消します
  • それでも駄目なら modular_headers — 副作用を承知のうえで、最後の手段として

なお、Expo SDK 53・Firebase 22 系の組み合わせで、useFrameworks: "static" を設定してもなお同じエラーが出るという報告があります。バージョンの組み合わせによっては、まだ完全には解消していない状態です。

※ 本節は 2026 年 7 月時点で公開されている issue や公式ドキュメントの記載を整理したものです。当方の環境で全パターンを再現・検証したものではありません。

コメント

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