1. 문제 상황: 디바이스에서만 구글, 카카오톡 로그인이 안된다. (릴리즈 모드는 됨)
- 에뮬레이터에서 릴리즈 모드로 하면 그건 됨.
- 근데 실제 플레이스토어에서 배포하고 다운받으면 안됨.
운영 중인 영단어 앱테크 캐시보카에는 구글 로그인, 카카오톡 로그인이 있습니다. (iOS에는 애플도)
Debug 모드에서도, Release 모드에서도 로그인이 잘 되는데 실제 디바이스에서만 로그인이 안되는거에요.
아무리 찾아봐도 전부 SHA-1 를 제대로 등록했냐? 라는 내용만 자꾸 나옴 ㅠ
구글만 안되는거면 몰라도 카카오톡도 안되는데.. 심지어 release모드에서는 됨;;;;
그래서 chatGPT한테 물어봄.
근데 미친 chatGPT가 해결해줬습니다..
위에 1번부터 6번까지 쭈욱 한 번씩 검토했어요.
근데 6번에서 ProGuard..? 이게 뭐야? ㅡㅡ 라는 마음으로 구글에 검색
첫번째 깃헙 들어가면
이런 대답이 있어요
심지어 더 찾아보니 훌륭하고 똑똑하신 한국인 개발자 선배님들께서도 작성하신 글이 있어요.
https://itstudy-mary.tistory.com/375
https://github.com/crossplatformkorea/react-native-kakao-login/issues/266
해결방법
android/app/proguard-rules.pro 에 아래 코드를 추가합니다.
-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter
-keep class com.google.googlesignin.** { *; }
문제 분석
app/build.gradle에 minifyEnabled 라는 코드가 있습니다.
minifyEnabled는 배포된 apk에서 코드를 베끼지 못하도록 코드 난독화해주는 기능이에요.
이걸 false하더라도 안드로이드는 기본적으로 제공하는 옵션입니다.
코드를 난독화하는 과정에서 kakao 로그인과 google 로그인의 api도 난독화 되어 읽지 못하는 겁니다.
proguard에서 해당 옵션을 예외처리해줌으로써 해결하였습니다 ~!
'React Native > Android' 카테고리의 다른 글
실제 디바이스에서만 카카오, 구글 로그인 안될 때 (0) | 2023.05.07 |
---|---|
Applovin Proguard minifyEnabled 에러 (0) | 2023.05.07 |
android keystore key hash 찾는 법 (0) | 2023.05.06 |
Couldn't find DSO to load crash in release build and hermes is enabled (0) | 2023.05.05 |
안드로이드 로그 보는 방법 (0) | 2023.05.05 |