この記事は Expo SDK 49 時点の記録です(2026 年 7 月 追記)
本文では「SDK 49 では
package=の項目がない」「手動で追加するとビルドが失敗する」という現象を記録しています。当時は理由が分からないまま対処しましたが、これは不具合ではなく Android 側の仕様変更でした。原因が分かると対処もはっきりするので、補足します。1. package 属性は namespace に置き換わりました
Android Gradle Plugin(AGP)8.0 から、
AndroidManifest.xmlのpackage属性は使えなくなりました。代わりに、モジュールのbuild.gradleにnamespaceを書きます。// android/app/build.gradle android { namespace 'com.mycompany.myapp' defaultConfig { applicationId 'com.mycompany.myapp' } }AGP 7.3 の頃から警告が出るようになり、8.0 で正式に廃止された流れです。Expo SDK 49 が AGP 8 系を採用したため、
package=の行が消えていました。手動で書き戻すとビルドが失敗するのは、正しい動作です。2. Firebase が見ているのは applicationId です
ここが分かりにくいところです。
> No matching client found for package name 'com.myapp'このエラーが照合しているのは、マニフェストの
packageではなくapplicationIdと、google-services.jsonの中に入っているクライアントのパッケージ名です。この 2 つが一致していないと出ます。もともと
package属性は「アプリの識別子」と「リソースの名前空間」という別々の役割を兼ねていました。AGP 8 はこれをapplicationIdとnamespaceに分離しています。両者は同じ文字列にすることが多いですが、別物です。Firebase コンソールに登録するのはapplicationIdのほうです。3. Expo では android ディレクトリを直接編集しないでください
本文では VSCode で
com.myappを検索して直接書き換えていますが、Expo で prebuild(CNG)を使っている場合、android/とios/は生成物です。次に prebuild を実行した時点で、手で加えた修正は消えます。正しい設定場所は
app.jsonです。{ "expo": { "android": { "package": "com.mycompany.myapp" }, "ios": { "bundleIdentifier": "com.mycompany.myapp" } } }ここを Firebase コンソールに登録したパッケージ名に合わせてから prebuild すれば、
applicationIdもnamespaceも正しい値で生成されます。同じ作業を二度やらずに済みます。4. パッケージ名を変えた直後の起動エラーについて
本文の最後に出ている、次のエラーについてです。
Activity class {com.mycompany.myapp/...MainActivity} does not exist.パッケージ名を変更すると、端末やエミュレータから見れば別のアプリになります。古いパッケージ名のアプリだけが入っている状態で新しいパッケージ名を起動しようとすると、このエラーになることがあります。エミュレータ側の古いアプリを削除してからインストールし直すと解消する場合がありますので、あわせてお試しください。
※ 上記のうち 1 と 2 は 2026 年 7 月時点の Android 公式ドキュメントの仕様に基づく整理です。3 と 4 は当時の環境で改めて再現・検証したものではありません。実際の対処は、お使いの SDK バージョンの公式ドキュメントとあわせてご確認ください。
開発環境
- Expo-bare:
try🐶everything myproject$ npx expo-env-info
expo-env-info 1.0.5 environment info:
System:
OS: macOS 14.0
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.7.0 - ~/.anyenv/envs/nodenv/versions/20.7.0/bin/node
Yarn: 1.22.19 - ~/.anyenv/envs/nodenv/versions/20.7.0/bin/yarn
npm: 10.1.0 - ~/.anyenv/envs/nodenv/versions/20.7.0/bin/npm
Watchman: 2023.09.04.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.12.1 - /Users/xxxxx/.anyenv/envs/rbenv/shims/pod
SDKs:
iOS SDK:
Platforms: DriverKit 23.0, iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0
Android SDK:
API Levels: 29, 30, 31, 32, 33
Build Tools: 29.0.2, 30.0.2, 30.0.3, 31.0.0, 32.0.0, 33.0.0
System Images: android-29 | Google APIs ARM 64 v8a, android-29 | Google APIs Intel x86 Atom, android-30 | Intel x86 Atom_64, android-30 | Google APIs Intel x86 Atom, android-31 | Google APIs ARM 64 v8a, android-32 | Google APIs ARM 64 v8a, android-33 | Google APIs ARM 64 v8a
IDEs:
Android Studio: 2022.3 AI-223.8836.35.2231.10671973
Xcode: 15.0/15A240d - /usr/bin/xcodebuild
npmPackages:
expo: ~49.0.13 => 49.0.13
react: 18.2.0 => 18.2.0
react-native: 0.72.5 => 0.72.5
Expo Workflow: bare
try🐶everything myproject$
- @react-native-firebase/app: 18.5.0
- この記事 の開発環境をベースにしています。
@react-native-firebase/app を追加する
このリンク 通りに設定して行けば良いのですが、
Firebaseコンソールで作成した Android アプリのパッケージ名とReactNative プロジェクトのAndroid アプリのパッケージ名を一致させる方法が変わっているようです。
/android/app/src/main/AndroidManifest.xml ファイル内のマニフェスト タグ内にあるローカル プロジェクトのパッケージ名と一致させる⁉️
expo@47.0.8 では pakage="com.myapp" 項目があり、修正するだけだったが

expo@49.0.13 では pakage="com.myapp" 項目がない

手動で、pakage="com.myapp" 項目を追加してビルトすると、ビルドは失敗する ❌
> Task :app:processDebugGoogleServices FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:processDebugGoogleServices'. > No matching client found for package name 'com.myapp'
違う方法を試します。
com.myappで検索した結果ファイルの設定を Firebase コンソールのパッケージ名に変更する ( VSCode )

※ 検索条件に ./android だけに制限し、./android/app/build/ 以下のファイルを除外することで得られた結果です。(⬆︎)
※ 対象ファイル:com.myapp ➡︎ your.firebase.console.package.name
android/app/build.gradle:namespace:"com.myapp"、applicationId:"com.myapp"、- android/app/src/debug/java/com/myapp/ReactNativeFlipper.java:
package:com.myapp - android/app/src/main/java/com/myapp/MainActivity.java:
package:com.myapp - android/app/src/main/java/com/myapp/MainApplication.java:
package:com.myapp - android/app/src/release/java/com/myapp/ReactNativeFlipper.java:
package:com.myapp
⬆︎ 変更後、再度ビルドすると問題なく成功できると思います。
※もし、全てのファイルを変更せず、android/app/build.gradle のみ、若しくは *.java だけ変更しビルトすると下記のようにビルドは成功するがエミュレーターが起動出来ないことがあるのでご注意ください!
CommandError: Couldn't open Android app with activity "com.mycompany.myapp/.MainActivity" on device "Pixel_XL_API_32".
try🐶everything myprojecct$ yarn android
...
› Opening com.mycompany.myapp/.MainActivity on Pixel_XL_API_32
CommandError: Couldn't open Android app with activity "com.mycompany.myapp/.MainActivity" on device "Pixel_XL_API_32".
The app might not be installed, try installing it with: npx expo run:android -d Pixel_XL_API_32
Activity class {com.mycompany.myapp/com.mycompany.myapp.MainActivity} does not exist.
error Command failed with exit code 1.
...
あとがき
これで React Native Firebase との連動はひとまずできました。あとは必要なパッケージ ( Auth・Analytics など ) を追加するだけなのでより楽になるかと思います。
また、個人的には下記の二点もいつも設定しておきます。ご参考までに!
🎯 Androidのビルドメモリを増やす
🎯 Androidのパフォーマンス


コメント