TestCrew
Firebase・Android設定

No matching client found for package nameの原因と直し方|Firebase設定エラー

Android・Flutter・React NativeでNo matching client found for package nameが発生する原因を解説。applicationId、google-services.json、product flavorの確認方法を整理します。

公開
2026年8月2日
更新
2026年8月2日
公式情報確認
2026年8月2日
applicationIdとgoogle-services.jsonのpackage_nameの不一致を確認する図
この記事の目次

Androidアプリをビルドした際、次のエラーが表示されることがあります。

No matching client found for package name 'com.example.app'

FlutterやReact Nativeでも、Android版のGradleビルド中に同じエラーが発生します。

このエラーは、現在ビルドしているアプリの最終applicationIdと、google-services.json内のpackage_nameが一致していないことを示します。

applicationIdとpackage_nameの確認図

エラーが発生する仕組み

GoogleサービスGradleプラグインは、google-services.json内の各clientを確認し、現在のアプリケーションIDと一致するpackage_nameを探します。

Android側:

android {
    defaultConfig {
        applicationId = "com.example.app"
    }
}

JSON側:

"android_client_info": {
  "package_name": "com.example.app"
}

この2つが完全一致すれば、対応するFirebase設定が選択されます。

最短の修正手順

  1. エラー文に表示されたパッケージ名をコピーする
  2. アプリレベルGradleのapplicationIdを確認する
  3. applicationIdSuffixとproduct flavorを確認する
  4. google-services.json内でpackage_nameを検索する
  5. 完全一致する値がなければFirebaseへAndroidアプリを追加する
  6. 正式なgoogle-services.jsonを再取得する
  7. 正しいアプリモジュールまたはflavorへ配置する
  8. クリーンビルドする

原因1:Firebaseへ違うパッケージ名を登録した

例:

実際のapplicationId:
com.example.todoapp

Firebase登録:
com.example.todo

Firebaseへ登録済みのAndroidアプリのパッケージ名は、後から書き換えるのではなく、正しいパッケージ名で新しいAndroidアプリを追加します。

原因2:applicationIdSuffixが付いている

次の設定では、debug版の最終IDが変わります。

android {
    defaultConfig {
        applicationId = "com.example.app"
    }

    buildTypes {
        getByName("debug") {
            applicationIdSuffix = ".debug"
        }
    }
}

最終的なID:

release: com.example.app
debug:   com.example.app.debug

Firebaseにcom.example.appしか登録していない場合、debugビルドでエラーになります。

原因3:product flavorでIDが変わる

flavorDimensions += "environment"

productFlavors {
    create("development") {
        dimension = "environment"
        applicationIdSuffix = ".dev"
    }

    create("production") {
        dimension = "environment"
    }
}

この場合、Firebaseへ次の2アプリを登録します。

com.example.app.dev
com.example.app

使用するflavorごとに対応するgoogle-services.jsonを配置します。

app/src/development/google-services.json
app/src/production/google-services.json

namespaceとapplicationIdを混同しない

現在のAndroidプロジェクトでは、namespaceapplicationIdを別々に設定できます。

android {
    namespace = "com.example.app.code"

    defaultConfig {
        applicationId = "com.example.app"
    }
}

Firebaseへ登録するのは、通常namespaceではなく最終的なapplicationIdです。

AndroidManifest.xmlだけを見ない

古いプロジェクトではManifestのpackage属性が使われていましたが、現在のアプリ識別子はGradleのapplicationIdを基準に確認します。

確認順:

  1. defaultConfig.applicationId
  2. build typeのapplicationIdSuffix
  3. product flavorの設定
  4. エラー文に表示された最終ID

エラー文のパッケージ名は、プラグインが照合しようとした実際の値として有用です。

JSONを手作業で書き換えない

package_nameだけを書き換えると、一見ビルドが進むように見える場合があります。

しかし、google-services.jsonには次の情報も含まれます。

  • FirebaseアプリID
  • OAuthクライアント
  • APIキー
  • プロジェクト番号

正しいパッケージ名でFirebase Androidアプリを登録し、正式なファイルを取得してください。

Flutterで発生する場合

確認場所:

android/app/build.gradle
android/app/google-services.json

またはKotlin DSLの場合:

android/app/build.gradle.kts

確認項目:

  • applicationId
  • flavorとsuffix
  • android/app/google-services.json
  • flutterfire configureで選んだFirebaseプロジェクト

クリーンだけではパッケージ名の不一致は直りません。先に登録情報を一致させます。

CIだけ失敗する場合

ローカルとCIで異なるvariantをビルドしていないか確認します。

ローカル: developmentRelease
CI:       productionRelease

また、CIで復元しているgoogle-services.jsonが別環境用ではないか、出力先が正しいかも確認してください。

修正後の確認

./gradlew clean
./gradlew assembleDebug

Flutter:

flutter clean
flutter pub get
flutter run

Google Play用AABを作る場合は、正しいproduction variantとversionCodeを確認します。

まとめ

No matching client found for package nameで確認する値は次の2つです。

最終applicationId
=
google-services.json内のpackage_name

特に、namespace、debug suffix、product flavor、CIのbuild variantを見落とさないようにしてください。

一次情報

公式参考資料

Google PlayやFirebaseの画面・要件は変更される場合があります。公開作業の前に、リンク先の最新情報も確認してください。

Analytics設定

TestCrewは、Webサイトの改善のためGoogle LLCが提供するGoogle Analyticsを使用します。利用の可否を変更でき、変更後はこのページの以後の計測と次回以降の訪問に反映されます。 プライバシーポリシーを見る