본문 바로가기

일::개발

Flutter: kakao 로그인 실패 (feat. flutter_kakao_login)

flutter_kakao_login 패키지(https://pub.dev/packages/flutter_kakao_login)를 이용해서 카카오로 로그인을 구현할 때 안드로이드 디버그 모드에서는 잘 동작하지만, 릴리즈 바이너리에서 

 

Fatal Exception: f.e.a.a.c.j: Refresh token not found in the response.

 

exception 떨어지는 문제가 생겨서 한참 고생하다 해결했다. 

 

일단 iOS에서는 문제 없고, 안드로이드에서만 문제가 발생한다면 키 해시 문제라고 보면 될 것 같다.

기본적으로 제일 먼저 확인해야 하는 것은 

카카오 개발자 사이트에서 앱 설정 - 플랫폼 - 안드로이드 에 키해시 값이 잘 들어가있는지

이다.

혹시 디버그모드에서만 되고 릴리즈모드에서 안 된다면 ~/.android/debug.keystore 로 만든 hash 와 Google Play Console 에서 얻은 SHA1 certificate fingerprint 로 만든 hash 값이 모두 들어가 있는 지 확인해본다.

 

둘 다 제대로 들어가 있다고 확신하는데 계속 문제가 발생한다면 다음은 proguard 설정을 확인해본다.

kakao 개발자 문서와 패키지 문서에 proguard 설정을 넣어주라는 말이 있기는 한데(https://developers.kakao.com/docs/latest/en/getting-started/sdk-android#configure-for-shrinking-and-obfuscation-(optional)), 빠뜨리기 쉽다. 

 

# kakao login
-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter

이 설정을 별도의 파일에 넣어줬다면 (ex. android/app/proguard-kakao.pro) 당연히 android/app/build.gradle 에 해당 파일을 넣어줘야 한다.

 

buildTypes {
    release {
        ...
        proguardFiles 'proguard-kakao.pro'
    }
}