TestCrew
Firebase・Android設定

Google Play版だけGoogleログインできない原因|SHA-1・SHA-256の設定方法

Android Studioでは成功するのにGoogle Play版だけGoogleログインに失敗する原因を解説。Play App Signing、Firebase、OAuthクライアント、SHA-1・SHA-256の確認手順を整理します。

公開
2026年8月2日
更新
2026年8月2日
公式情報確認
2026年8月2日
Google Play版だけGoogleログインできない場合の確認順を示した図
この記事の目次

Android Studioから直接インストールしたアプリではGoogleログインできるのに、Google Playからインストールしたクローズドテスト版や製品版だけ失敗することがあります。

代表的な症状は次のとおりです。

  • Googleアカウントを選択した後に元の画面へ戻る
  • DEVELOPER_ERRORやエラーコード10が出る
  • Firebase Authenticationにユーザーが作成されない
  • 内部テスト版や製品版だけIDトークンを取得できない

最も多い原因は、Google Playが配信版へ使用するアプリ署名鍵のSHAフィンガープリントが、FirebaseまたはGoogle Cloudへ登録されていないことです。

Google Play版だけGoogleログインできない場合の確認順

なぜdebug版だけ動くのか

Googleログインでは、主に次の組み合わせでAndroidアプリを識別します。

  • パッケージ名
  • 署名証明書
  • SHA-1またはSHA-256
  • OAuthクライアント
  • FirebaseまたはGoogle Cloudプロジェクト

Android Studioのdebug版は、通常debug.keystoreで署名されます。一方、Google Playから配信されるAPKは、Play App Signingのアプリ署名鍵で署名されます。

同じパッケージ名でも署名証明書が異なるため、debug用SHAだけを登録しているとGoogle Play版だけ認証に失敗する可能性があります。

アップロード鍵とアプリ署名鍵を区別する

Play App Signingでは、主に2種類の鍵があります。

主な役割
アップロード鍵開発者がAABをPlay Consoleへ提出するときに使用
アプリ署名鍵Google Playがユーザーへ配信するAPKへ使用

Google Play版の認証設定で重要なのは、通常、アプリ署名鍵の証明書です。

Play Consoleで「アプリ署名鍵の証明書」と「アップロード鍵の証明書」を取り違えないでください。

最短の修正手順

  1. Play Consoleで対象アプリを開く
  2. Play App Signingの管理画面を開く
  3. アプリ署名鍵のSHA-1をコピーする
  4. 必要に応じてSHA-256もコピーする
  5. Firebaseの正しいAndroidアプリへ追加する
  6. Firebase AuthenticationでGoogleプロバイダを有効にする
  7. Google CloudのOAuthクライアントを確認する
  8. 最新のgoogle-services.jsonへ更新する
  9. versionCodeを増やして新しいAABを公開する
  10. Google Playから最新版へ更新して再確認する

FirebaseへSHAを追加する

Firebaseコンソールで次の順に進みます。

  1. 対象プロジェクトを開く
  2. 「プロジェクトの設定」を開く
  3. 「全般」の「マイアプリ」へ移動する
  4. 対象のAndroidアプリを選ぶ
  5. 「SHA証明書フィンガープリントを追加」を選ぶ
  6. Play Consoleから取得したSHAを保存する

GoogleログインではSHA-1が重要です。Firebase App Checkや一部のAPI制限ではSHA-256が必要になるため、利用機能の公式手順も確認してください。

パッケージ名を確認する

Firebaseへ登録したパッケージ名と、Google Play版の実際のapplicationIdが一致している必要があります。

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

product flavorを使用している場合は、最終的なIDが変わることがあります。

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

この場合、開発版はcom.example.app.dev、本番版はcom.example.appです。Google Playへ提出した本番版のIDを基準に確認します。

AndroidクライアントIDとWebクライアントID

Googleログインでは、次の2種類を混同しやすくなります。

AndroidクライアントID

パッケージ名とSHA-1の組み合わせでAndroidアプリを識別します。

WebクライアントID

IDトークンのaudienceやサーバークライアントIDとして使用します。Credential ManagerのsetServerClientIdには、通常WebクライアントIDを指定します。

val googleIdOption = GetGoogleIdOption.Builder()
    .setFilterByAuthorizedAccounts(false)
    .setServerClientId(WEB_CLIENT_ID)
    .build()

AndroidクライアントIDをここへ設定すると、認証構成が一致しない場合があります。

google-services.jsonを更新する

SHAやGoogleログインの設定を追加した後は、Firebaseから最新のgoogle-services.jsonを取得します。

一般的な配置場所は次のとおりです。

app/google-services.json

FlutterやReact Nativeでは通常次の場所です。

android/app/google-services.json

別プロジェクトのファイルや古いファイルを使っていないか、project_idpackage_nameも確認してください。

バックエンドで401になる場合

アプリ側のアカウント選択まで成功し、バックエンドだけ401になる場合は、IDトークンのaudを確認します。

  • アプリのWebクライアントID
  • Google Cloud上のWebクライアントID
  • バックエンドが許可するaudience

これらが一致していなければ、Googleログイン画面は完了してもサーバー側で拒否されます。

修正後の確認

修正後は、次の3種類を分けて確認します。

ビルド主な署名
Android Studioのdebug版debug keystore
ローカルrelease APKrelease鍵・アップロード鍵
Google Play配信版Play App Signingのアプリ署名鍵

Google Play版を確認するときは、端末へ残った古いAPKではなく、Google Playから最新版へ更新してください。

まとめ

Google Play版だけGoogleログインできない場合は、次を順番に確認します。

  1. Play Consoleのアプリ署名鍵SHA-1
  2. Firebaseへ登録したAndroidアプリ
  3. パッケージ名
  4. Googleプロバイダの有効化
  5. Android OAuthクライアント
  6. WebクライアントID
  7. 最新のgoogle-services.json
  8. 最新AABとversionCode

最初に、アップロード鍵ではなくアプリ署名鍵のSHAを登録しているか確認してください。

一次情報

公式参考資料

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

Analytics設定

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