자연과학/컴퓨터과학

<Flutter> 소셜로그인 구현 에러

Retyper 2025. 8. 29. 20:04

 

그림1. 앱 개발할때는 여러가지 문제가 발생한다.

Flutter 앱 개발 시 Google 로그인, 'No credential available' 에러 발생. -2025.08.29-

 


googlesignin exception( code: googlesignin exception code.unknownerror, no credential available: no credentials available, null )

 

 

Visual studio Code 로 Flutter 앱 개발 도중 Firebase 연결한 Google 소셜 로그인을 구현하다가 "GoogleSignInExceptionCode.unknownError, No credential available"라는 오류에 막혔었다. 분명 Firebase와 Google Cloud 설정은 다 끝냈고, SHA-1 키도 제대로 입력했고, SDK로 돌린 앱에서 '구글로그인' 버튼도 만들어서 내 구글 아이디로 로그인까지 했었는데... 그렇게 로그인은 되 놓고 정작 앱으로 돌아와서 로그인 이후로 스크린 진행이 안되었다.

장장 3일을 붙잡고 다양한 시도를 해본 결과, 원인을 찾고 해결했다. 그 원인은 개발 환경과 키 해시값의 관계.

 

SHA-1 키의 비밀

Google 로그인을 성공적으로 연동하려면, Firebase에 내 앱의 고유한 지문인 SHA-1 키를 등록해야 한다. 그런데 SHA-1 키는 용도에 따라 두 가지 종류가 있다는 것을 간과하고 있었다.

  1. 디버그(Debug) SHA-1 키: 개발 단계에서 Visual Studio Code와 같은 IDE에서 앱을 에뮬레이터로 실행할 때 자동으로 사용되는 키.
  2. 릴리즈(Release) SHA-1 키: 앱을 최종적으로 빌드해서 Google Play Store에 올릴 때 사용하는 키.

이 두 키는 완전히 다르다.

 

문제의 원인: 자동 사용된 디버그 SHA-1

Flutter 프로젝트를 Visual Studio Code에서 바로 실행(Run)하면, 앱은 디버그 SHA-1 키를 사용해 빌드된다.

하지만 나는 Firebase에 릴리즈 SHA-1 키를 등록해둔 상태였다.

결과적으로, 앱이 Google 서버에 로그인 요청을 보낼 때, 서버는 앱의 지문(디버그 SHA-1)이 등록된 지문(릴리즈 SHA-1)과 다르다고 판단하여 로그인을 거부했던 것이다. 이 때문에 "해당 자격증명(credential)을 찾을 수 없다"는 에러가 발생했었다.

 

해결 방법: 디버그 SHA-1 키 등록하기

해결책은 간단했다.

  1. 터미널에서 디버그 SHA-1 키를 찾아 복사한다. "debug.keystore 파일"의 위치는 내 경우 "C:\Users\사용자이름\.android" 였다.
  2. Firebase 프로젝트 개요 -> 프로젝트 설정 -> 일반 -> SHA 인증서 지문에 들어가 복사한 디버그 SHA-1 키를 추가한다.
  3. google-services.json 을 다운받아 "프로젝트폴더\android\app"에 올리고, 다시 VS Code에서 앱을 실행하여 Google 로그인을 시도하면 완료.

이 경험을 통해 Google 소셜 로그인을 연동시에는 현재 만들어진 앱이 어떤 디지털 지문을 가지고 있는지 확실히 확인하는게 중요함을 알았다. 추후 릴리즈단계에선 다시 SHA1을 바꿔주어야 할 것이다.

 

반응형