카카오 공유하기 build Type 관련 질문

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.

Faq 목록 - 10. Android ( Faq 목록 입니다 ) 먼저 확인해주세요.


현재 카카오톡 공유하기(v2-share)를 사용중입니다.
build Type이 debug일때는 공유가 되고, release일때는 com.google.gson.JsonSyntaxException이 발생했습니다.
난독화 코드를 넣기도 하고 빼기도 해봤는데 둘다 발생했습니다.
기존 release type일때 debuggable 을 false로 하고 빌드 했었는데, 자세한 로그를 보려고 true로 바꾸고 빌드하니 카카오톡 공유하기 되더라고요. 혹시 이에 관해서 아시는게 있을까요?

안녕하세요.

카카오톡 공유하기(v2-share)에서 build Type이 debug일 때는 공유가 되고, release일 때는 com.google.gson.JsonSyntaxException이 발생하는 문제입니다.

이 문제는 ProGuard 설정과 관련이 있을 수 있습니다. ProGuard는 release 빌드에서 코드를 난독화하는 도구입니다. 카카오톡 공유하기 SDK에서도 ProGuard 설정이 필요합니다.

ProGuard 설정을 확인하세요. 카카오톡 공유하기 SDK에서 사용하는 클래스와 메서드를 예외로 추가해야 합니다. 예를 들어, -keep class com.kakao.sdk.** { *; }와 같이 추가할 수 있습니다.

또한, debuggabletrue로 설정하여 빌드했을 때 카카오톡 공유하기가 되더라는 것은, ProGuard 설정이 문제일 가능성이 있습니다.

자세한 로그를 확인하여 문제를 해결하세요. 카카오톡 공유하기 SDK의 로그를 확인하여 문제를 해결할 수 있습니다.

참고로, 카카오톡 공유하기 SDK의 ProGuard 설정 가이드를 확인하세요. https://developers.kakao.com/docs/latest/ko/kakaologin/android#proguard

[ @tim.l @woody.ho ]

선택: 프로가드 규칙

앱 배포 시, 코드 축소, 난독화, 최적화를 하는 경우, 카카오 SDK를 제외하고 진행하기 위하여 프로가드(ProGuard) 규칙 파일에 다음 코드를 추가합니다.

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

# https://github.com/square/okhttp/pull/6792
-dontwarn org.bouncycastle.jsse.**
-dontwarn org.conscrypt.*
-dontwarn org.openjsse.**

해당 코드를 추가해도 똑같은 exception이 발생하는데요.
key hash값은 정상적으로 등록되어있는 상태구요.
proguard 파일은

proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.txt’
build Gradle에서 한 파일에 쓰고있습니다.

안녕하세요.

확인을 위해 앱 ID 부탁드립니다.


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다
ex) 123456

80508 입니다.

증상자체는 난독화로 인한 문제로 보이는데요.

외부 변수 최소화를 위해 빈 프로젝트에 카카오톡 공유하기만 두고 난독화, 난독화 예외 및 릴리즈모드 빌드하셔서 동일하게 재현되는지 확인 해보시겠어요?

네 답변 감사합니다.

1개의 좋아요