본문 바로가기
IT

Flutter: Google Login 인증서 에러 (com.google.android.gms.common.api.ApiException: 10: , null)

by 생생한 정보통 2020. 3. 21.

Flutter에서 Google Firebase를 이용해 Google login을 연동하려면, 인증서를 생성하고 Firebase에 등록해야 한다.

 

흔한 에러 메시지

만약 Flutter 빌드를 시도했는데, 아래와 같은 에러가 나온다면 debug.keystore가 잘 만들어 졌는지, 그리고 제 위치에 있는지 일단 확인해 보아야 한다.

[+54649 ms] I/flutter (25565): PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
[   +1 ms] I/flutter (25565): login Error!!!!
[        ] E/flutter (25565): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: type '_CompactLinkedHashSet<void>' is not a subtype of type 'FutureOr<Null>'
[        ] E/flutter (25565): #0      _FutureListener.handleError (dart:async/future_impl.dart:157:7)
[        ] E/flutter (25565): #1      Future._propagateToListeners.handleError (dart:async/future_impl.dart:692:47)
[        ] E/flutter (25565): #2      Future._propagateToListeners (dart:async/future_impl.dart:713:24)

 

인증서 생성하기

Mac의 경우, /Users/{사용자 이름}/.android
Windows의 경우 C:\Users\{사용자 이름}\.android로 이동해 아래 명령어를 실행한다.
인증서 생성자 정보를 적당히 입력하고 비밀번호를 설정해 주면, 해당 경로에 debug.keystore 인증서가 생성된다.

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000

 

Firebase에 인증서 등록하기

Firebase의 프로젝트 설정으로 이동한다.

 

Mac의 경우, /Users/{사용자 이름}/.android
Windows의 경우 C:\Users\{사용자 이름}\.android 경로에서 생성한 인증서의 지문을 확인한다.

keytool -list -v -keystore debug.keystore -alias androiddebugkey

내용 중 SHA1 이라고 써있는 항목의 값이 SHA1 인증서 지문이다.

 

확인한 인증서의 지문을 Firebase에 등록해 준다.

 

인증서 지문 정보를 추가했으면 인증서 정보가 업데이트된 google-service.json을 다운받는다.

 

프로젝트의 android/app 경로 아래에 google-services.json을 추가해 주고, 다시 빌드를 해보면 에러가 사라지고 실행되는 것을 확인할 수 있다.

 

* 만약 여전히 에러가 발생한다면, 아래 Stackoverflow 답변에서 추가 정보를 확인할 수 있다.

https://stackoverflow.com/a/58644909/6284384

 

Flutter and google_sign_in plugin: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)

The dialog (Google form) for the credentials is opened successfully, but after I fill my credentials I'm getting this error. I followed the instructions from here. Created a Firebase project, enabl...

stackoverflow.com

이 포스트가 도움이 되었다면 하트를 눌러주세요~!