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 키는 용도에 따라 두 가지 종류가 있다는 것을 간과하고 있었다.
- 디버그(Debug) SHA-1 키: 개발 단계에서 Visual Studio Code와 같은 IDE에서 앱을 에뮬레이터로 실행할 때 자동으로 사용되는 키.
- 릴리즈(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 키 등록하기
해결책은 간단했다.
- 터미널에서 디버그 SHA-1 키를 찾아 복사한다. "debug.keystore 파일"의 위치는 내 경우 "C:\Users\사용자이름\.android" 였다.
- Firebase 프로젝트 개요 -> 프로젝트 설정 -> 일반 -> SHA 인증서 지문에 들어가 복사한 디버그 SHA-1 키를 추가한다.
- google-services.json 을 다운받아 "프로젝트폴더\android\app"에 올리고, 다시 VS Code에서 앱을 실행하여 Google 로그인을 시도하면 완료.
이 경험을 통해 Google 소셜 로그인을 연동시에는 현재 만들어진 앱이 어떤 디지털 지문을 가지고 있는지 확실히 확인하는게 중요함을 알았다. 추후 릴리즈단계에선 다시 SHA1을 바꿔주어야 할 것이다.
'자연과학 > 컴퓨터과학' 카테고리의 다른 글
<Flutter> json_serializable, g 파일 생성 불가 (0) | 2025.09.10 |
---|---|
<Flutter> 소셜로그인 구현 에러 2 (2) | 2025.08.30 |
<Python> 초간단! python 코드를 exe 파일로 만들기(비주얼 스튜디오 가상환경) (0) | 2023.02.16 |
<Python> NLTK 사용시 단어의 품사 약칭 정리 (0) | 2023.01.19 |
강의요약(Introduction to R) (0) | 2022.08.06 |