ブログ
AndroidアプリでGoogleサインインが実行できないときに行った対処法
Android Studioで既存アプリ改修中にビルドした際、ログインできない事象が発生しました。ログを見てみると下記のようなエラーが出ていることが判明しました。
com.google.android.gms.common.api.ApiException: 10
調べてみると、改修中のアプリはFirebase Authを使ったGoogleサインイン機能が使用されており、上記エラーはアプリケーションの設定が間違っている時に出るみたいです。(参画したばかりのプロジェクトで、この時初めてビルドしたので気が付きませんでした…)
環境
- MacBook Air (13-inch, M2,2022)
- macOS Sonoma 14.2
- Android Studio 17.0.9
- Kotlin 1.9.24
原因
このエラーについて、原因は『SHA-1 証明書フィンガープリントの不一致』、『Google API Console の設定不備』等で起きるようです。Firebaseの管理画面で確認したところ、アプリのフィンガープリントが入っておりませんでした。今回は、SHA-1フィンガープリントの設定が不足していたことが原因でエラーが発生していたようです。
解決方法
Firebase Authでは、アプリ用の OAuth2 クライアントと API キーを作成できるように署名証明書の SHA-1 を提供する必要があります。つまり、SHA-1フィンガープリントを取得し、Firebaseへ追加することでAndroidでGoogleサインインが使えるようになります。
1. SHA-1フィンガープリントの取得
SHA-1フィンガープリントを取得するには、以下のコマンドを使用します。
keytool -list -v -keystore <path-to-your-keystore-file> -alias <your-alias>
このコマンドは、 <path-to-your-keystore-file>にキーストアのパスを指定し、<your-alias>にキーストアのエイリアスを指定します。通常、デバッグ用のキーは ~/.android/debug.keystore にあります。
2. SHA-1フィンガープリントの設定
取得したSHA-1フィンガープリントをFirebaseコンソールのプロジェクト設定に追加します。Firebaseコンソールで、プロジェクトの設定ページに移動し、アプリに対応するSHA-1フィンガープリントを入力します。
3. アプリの再ビルド
すべての設定が完了したら、Android Studioでアプリをクリーンビルドして再実行します。これにより、設定が反映され、ApiException 10 エラーが解消されました。
まとめ
ApiException 10 エラーは、Googleサインインの設定が正しくない場合に発生します。私は以上のようにSHA-1フィンガープリントの設定と、Firebaseの認証設定を確認することでこの問題を解決できました。ご参考になりましたら幸いです。
株式会社ウイングドアは福岡のシステム開発会社です。
現在、私達と一緒に"楽しく仕事が出来る仲間"として、新卒・中途採用を絶賛募集しています!
ウイングドアの仲間達となら楽しく仕事できるかも?と興味をもった方、
お気軽にお問い合わせ下さい!