카카오 로그인 안드로이드 sdk r8 full mode 관련

2.8.1, 2.12.1 버전에서 모두 발생합니다.

문서의 proguard rule은 models package만을 keep하도록 되어있는데, 일단 전체 sdk를 keep하게 하니 문제는 해결되었습니다. sdk를 통해 로그인 요청 시 아래와 같은 exception이 발생했는데, 확인해보시고 적절한 proguard rule로 업데이트 하면 좋을 것 같습니다.

java.lang.ClassCastException
at androidx.appcompat.app.WindowDecorActionBar$$ExternalSyntheticThrowCCEIfNotNull0.m(SourceFile:0)
at com.kakao.sdk.user.UserApiClient.(SourceFile:36)
at com.kakao.sdk.user.UserApiClient$Companion$instance$2.invoke(SourceFile:452)
at com.kakao.sdk.user.UserApiClient$Companion$instance$2.invoke(SourceFile:452)
at kotlin.SynchronizedLazyImpl.getValue(SourceFile:74)
at com.kakao.sdk.user.UserApiClient$Companion.getInstance(SourceFile:452)

모든 sdk를 keep하게 한 뒤 빌드 결과물은 80kb 정도 증가했습니다.

안녕하세요.

사용하고 계시는 AGP(Android Gradle Plugin) 및 kotlin 버전이 어떻게 되실까요?

agp 8.0.0-beta03
kotlin 1.8.10

입니다.

@android.dev
죄송합니다.
gradle 버전도 함께 부탁드립니다.

gradle 8.0-rc3 입니다.

안녕하세요

제보주신 내용에 대해서 내부적으로 파악해봤는데, AGP 8.0 버전으로 올라가면서 발생한 이슈인 것으로 확인되고,

공식 문서에서 가이드 하고 있는 프로가드 설정에 추가로 아래의 내용 추가하시면 이슈가 해결될 것으로 보입니다.

-keep interface com.kakao.sdk.**.*Api

만약 rx버전의 SDK를 사용하시고 계신다면 추가로 아래의 내용도 추가해서 사용하시면 될 것 같습니다.

2.13.0 이상

# Keep generic signature of RxJava3 (R8 full mode strips signatures from non-kept items).
-keep,allowobfuscation,allowshrinking class io.reactivex.rxjava3.core.Flowable
-keep,allowobfuscation,allowshrinking class io.reactivex.rxjava3.core.Maybe
-keep,allowobfuscation,allowshrinking class io.reactivex.rxjava3.core.Observable
-keep,allowobfuscation,allowshrinking class io.reactivex.rxjava3.core.Single

2.13.0 미만

# Keep generic signature of RxJava2 (R8 full mode strips signatures from non-kept items).
-keep,allowobfuscation,allowshrinking class io.reactivex.Flowable
-keep,allowobfuscation,allowshrinking class io.reactivex.Maybe
-keep,allowobfuscation,allowshrinking class io.reactivex.Observable
-keep,allowobfuscation,allowshrinking class io.reactivex.Single
2개의 좋아요