자연과학/컴퓨터과학

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

Retyper 2025. 8. 30. 23:05

그림1. 깎고 깎다보면 더 알게되고 다듬어지는 코드.

Flutter 앱개발중 또 발생한 'No credential available' 오류

분명 어제까지 잘되던 기능인데, 뭐 건드린것도 없는데 같은오류가 또 발생했다. 구글 소셜로그인 구현하다 발생한. No credential available이라는 오류였다.

 

온갖 곳에 depugpringt

main에서 만들었던 인스턴스랑 auth service 파일의 한줄한줄 전부 낱낱이 디버그프린트를 찍어 심층 이해에 들어갔다. I/flutter: [onAuthError] GoogleSignInException(..., No credential available: No credentials available, ...) 이 메시지는 앱이 구글에 지금 내앱에서 연락하고있다고 증명할 수 있는 신원 정보(Credential)가 없다는 뜻이다. 어제 수정했던 SHA1 디지털지문은 건드린적도 없는데 왜 갑자기 오류가 발생한 걸까.

 

원인. 에뮬레이터의 구글 서비스 문제

처음에는 고치고 있던 코드를 의심했지만 어떻게 바꿔도 변하는게 없었다. 진짜 웃긴건 미리 구현해두었던 자동로그인을 실행하면 접속이 제대로 되는데 로그아웃후 로그인화면에서 다시 구글 로그인 버튼을 실행시키면 no credential 에러가 떴던것.

결국, 문제는 개발 환경(에뮬레이터) 자체에 있었다. 하루아침에 에뮬레이터의 Google Play 서비스가 손상되거나, 캐시 문제로 인해 인증 정보를 제대로 처리하지 못하는 상황이 생김. 대체 뭣때문이었을지 짐작이 가지 않지만, 중간에 에뮬레이터 내에서 다른아이디로 구글로그인 시도했을때 구글 서비스 부분에서 구글 서비스 작동안한다는 팝업이 떳었고, 그냥 일어날수도 있는 일이므로 무시했었다.

 

해결

문제를 해결한 방법은 안드로이드 스튜디오에서 기존 SDK 삭제 이후 다른버전의 SDK를 새로 설치한것이다 (SDK 삭제 및 신규설치). 물론 gradle도 버전에 맞게 입력해주었고 추가적 발생가능한 문제를 예방하기 위해 firebase 에서 디지털지문을 디버그키스토어, 릴리즈키스토어 전부 등록해두었다 (동시기록이 가능하다, SHA1 2개 SHA256 2개). 이렇게하고 google-services.json 파일 재다운로드하여 android\app 에 업데이트 하였다.

새 SDK 정상설치하고 기존 코드 그대로 실행하자 로그인도 제대로 되고 로그아웃기능, 로그아웃이후 다시 구글로그인까지 전부 정상작동했다. 건강한 정신으로 꾸준히 하다보면 무엇이든 못할게 없다.

반응형