crossplatformkorea / react-native-kakao-login

react-native native module for Kakao sign in.
MIT License
360 stars 136 forks source link

구글플레이에서 내부테스트 하면 나오는 이슈 #235

Open nan8420 opened 3 years ago

nan8420 commented 3 years ago

Version of kakao-login libraries

3.3.2

Version of react-native

"0.64.2",

Platforms you faced the error (IOS or Android or both?)

android

구글플레이에서 내부테스트로 출시한 후 앱을 다운받고 카카오 로그인 함수를 실행하면 앱이 팅기는 현상이 나타납니다 안드로이드 로그캣을 보면 이러한 에러가 발생합니다.

2021-06-20 17:35:54.236 1011-8210/? E/Parcel: Class not found when unmarshalling: com.kakao.sdk.auth.AuthCodeClient$resultReceiver$1 java.lang.ClassNotFoundException: com.kakao.sdk.auth.AuthCodeClient$resultReceiver$1 at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:454) at android.os.Parcel.readParcelableCreator(Parcel.java:3350) at android.os.Parcel.readParcelable(Parcel.java:3284) at android.os.Parcel.readValue(Parcel.java:3186) at android.os.Parcel.readArrayMapInternal(Parcel.java:3579) at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292) at android.os.BaseBundle.unparcel(BaseBundle.java:236) at android.os.BaseBundle.getString(BaseBundle.java:1196) at android.content.Intent.getStringExtra(Intent.java:8889) at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1128) at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:894) at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1710) at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1560) at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1512) at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1663) at android.os.Binder.execTransactInternal(Binder.java:1190) at android.os.Binder.execTransact(Binder.java:1159) Caused by: java.lang.ClassNotFoundException: com.kakao.sdk.auth.AuthCodeClient$resultReceiver$1

Expected behavior

로그인을 누르면 카카오로그인 페이지로 가야하는데 로그인을 누르면 앱이 아예꺼져버립니다.

Actual behavior

앱이 아예꺼져버립니다.

Tested environment (Emulator? Real Device?)

갤럭시 s 10 +

HwangTaehyun commented 3 years ago

갤럭시 s9에서도 동일한 문제가 발생하는 것 같습니다.

HwangTaehyun commented 3 years ago

여기서도 동일한 문제가 있는 것 같습니다. https://devtalk.kakao.com/t/topic/112324/2

혹시 해결 방법 아시는 분 공유 꼭 부탁드립니다... ㅜㅜ

HwangTaehyun commented 3 years ago

테스트중인 공기계에서 카카오톡이 깔려있는데 로그인이 안된 상태여서 해당 에러가 발생한거 같습니다. 카카오톡을 아예 지우니 로그인이 정상 작동합니다!

xubmuajkub commented 3 years ago

@HwangTaehyun Did you resolve this issue? I also have the same issue. When I run the app in dev environment, the login method seems to run find. But when I build the app in release mode the login never work.

Here's my logs

{
  "nativeStackAndroid": [
    {
      "lineNumber": 11,
      "file": "ApiCallback.kt",
      "methodName": "a",
      "class": "e.c.a.b.a$a"
    },
    {
      "lineNumber": 6,
      "file": "ApiCallback.kt",
      "methodName": "a",
      "class": "e.c.a.b.a"
    },
    {
      "lineNumber": 3,
      "file": "DefaultCallAdapterFactory.java",
      "methodName": "run",
      "class": "retrofit2.g$b$a$a"
    },
    {
      "lineNumber": 938,
      "file": "Handler.java",
      "methodName": "handleCallback",
      "class": "android.os.Handler"
    },
    {
      "lineNumber": 99,
      "file": "Handler.java",
      "methodName": "dispatchMessage",
      "class": "android.os.Handler"
    },
    {
      "lineNumber": 246,
      "file": "Looper.java",
      "methodName": "loop",
      "class": "android.os.Looper"
    },
    {
      "lineNumber": 8506,
      "file": "ActivityThread.java",
      "methodName": "main",
      "class": "android.app.ActivityThread"
    },
    {
      "lineNumber": -2,
      "file": "Method.java",
      "methodName": "invoke",
      "class": "java.lang.reflect.Method"
    },
    {
      "lineNumber": 602,
      "file": "RuntimeInit.java",
      "methodName": "run",
      "class": "com.android.internal.os.RuntimeInit$MethodAndArgsCaller"
    },
    {
      "lineNumber": 1130,
      "file": "ZygoteInit.java",
      "methodName": "main",
      "class": "com.android.internal.os.ZygoteInit"
    }
  ],
  "userInfo": null,
  "message": null,
  "code": "RNKakaoLogins"
}
woojunro commented 3 years ago

갤럭시 S21에서도 동일 이슈 발생합니다. 공기계가 아니며 카카오톡 설치 후 로그인도 되어 있는데 해당 이슈가 발생하네요 ㅠㅠ

woojunro commented 3 years ago

저의 경우 @HwangTaehyun 님과 달리 코드 난독화가 문제였습니다. proguard-rules.pro에 다음 코드를 추가하니 정상 작동하였습니다.

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

출시 과정에서 코드 난독화를 진행하신 분들께서는 참고해주세요!