배포 시 구글 로그인 실패하는 문제

에뮬레이터에서는 성공하는데 배포 후 구글 로그인이 실패한다면?

• 법원경매정보 API

플레이스토어에서 베타 테스트 앱의 구글 로그인 오류는 SHA-1 인증서 지문 미등록이 대부분의 사례에서 발생하는 주요 원인이다.

원인 및 필요한 조치

  • 에뮬레이터나 로컬 빌드에서는 디버그 키스토어의 SHA-1 값이 사용되지만, 실제 플레이스토어에서는 Google Play 앱 서명 키의 SHA-1이 별도로 생성되어 앱에 서명된다.
  • 만약 Firebase, Google Cloud, 또는 소셜 로그인 인증서에 이 배포용 SHA-1 값을 등록하지 않으면, 스토어에서 설치한 실제 사용자 단말기에서는 인증이 실패한다.

나의 경우, 따로 key generator로 생성해서 저장한 SHA 키 외에 구글 플레이 콘솔의 SHA 키값은 파이어베이스에 등록하지 않았다.

해결 방법

  1. Google Play 콘솔 → 앱 선택 → 설정 → 앱 서명 메뉴에서 ‘앱 서명 키’의 SHA-1 값을 확인한다.
  2. Firebase Console(또는 구글 클라우드 콘솔)에서 해당 앱 프로젝트의 SHA-1 지문을 추가한다.
  3. google-services.json 파일을 다시 받아 교체한 뒤 앱을 재빌드한다.
  4. 실제 단말기에서 플레이스토어로 최신 빌드를 받기 전, 기존 앱을 완전히 삭제하고 새로 설치해 테스트한다. (나의 경우 3, 4번을 생략하고도 바로 잘 작동하는 걸 볼 수 있었다.)

실제 단말기에서 오류 로그 확인 방법

  • Play Store에서 설치한 앱의 로그는 일반적으로 adb logcat을 통해서만 실시간 확인할 수 있다.
  • adb logcat을 사용하려면 개발자 옵션을 활성화하고 USB 디버깅을 켠 후 PC와 연결해야 한다.
  • 원격 배포 후 직접 로그 접근이 어려운 경우, Sentry나 Firebase Crashlytics 같은 라이브러리를 통해 런타임 오류 리포트를 수집하는 방법을 활용할 수 있다.

정리

  • Google Play 앱 서명용 SHA-1이 등록되어 있지 않으면 배포 버전에서 구글 로그인 오류가 발생한다.
  • 반드시 배포용 SHA-1을 등록하고, 필요하다면 google-services.json을 교체한 뒤 앱을 재배포해야 한다.
  • 실제 단말기 오류 추적은 adb logcat 또는 Crashlytics 같은 도구를 활용하는 것이 권장된다.