카카오톡 로그인 내부 테스트에서만 안 되는 주요 원인

Google Play Console에서 배포된 앱(내부 테스트 포함)의 로그를 확인하고, 특히 카카오톡 로그인 오류를 디버깅하는 방법은 다음과 같아요. 내부 테스트(라이선스 테스트)에서만 발생하는 문제는 대개 키 해시 불일치 때문인 경우가 대부분입니다.

1. 앱 로그(특히 Logcat) 확인 방법

Google Play 스토어에서 다운로드된 앱은 USB 연결이나 에뮬레이터처럼 직접 Logcat을 볼 수 없어요. 그래서 아래 방법으로 로그를 수집해야 합니다.

  • 가장 추천하는 방법: Firebase Crashlytics 또는 Timber + Firebase Analytics 사용
  • 앱에 Firebase Crashlytics를 연동하면 크래시/예외 발생 시 자동으로 스택 트레이스와 로그를 콘솔에 전송합니다. (비정상 종료뿐 아니라 일반 예외도 잡을 수 있음)
  • 카카오 로그인 실패 시 Kakao SDK가 던지는 예외(예: KakaoException, error code 등)를 로그로 남기세요.
  • 코드 예시:
    kotlin try { // 카카오 로그인 코드 } catch (e: Exception) { Log.e("KakaoLogin", "로그인 실패", e) // 또는 Crashlytics.log("Kakao login failed: ${e.message}") // FirebaseCrashlytics.getInstance().recordException(e) }
  • Firebase 콘솔 > Crashlytics에서 실시간으로 확인 가능 (내부 테스터 기기에서도 전송됨).
  • Google Play Console의 Android Vitals 사용
  • Play Console → 앱 선택 → 모니터링 및 개선 > Android vitals > 비정상 종료 및 ANR 메뉴로 이동.
  • 크래시나 ANR(응답 없음)이 발생하면 클러스터별로 Logcat 일부, 기기 정보, 오류 동영상 등을 볼 수 있어요.
  • 하지만 이는 크래시/ANR에만 해당하고, 로그인 실패처럼 앱이 정상 종료되는 경우는 안 보일 수 있어요.
  • 데이터는 사용자가 진단 데이터 공유를 허용한 기기에서 수집되며, 보통 몇 시간~24시간 지연될 수 있습니다.
  • 임시 방법: 테스터 기기에 ADB 무선 연결
  • 테스터 기기가 루팅되지 않았다면 어렵지만, 개발자 옵션에서 무선 디버깅 활성화 → ADB로 연결하면 Logcat 볼 수 있어요.
  • 하지만 대부분의 테스터는 이게 불가능하니 위 Firebase 방법이 현실적입니다.

2. 카카오톡 로그인 내부 테스트에서만 안 되는 주요 원인과 해결법

에뮬레이터/USB 디버그 빌드에서는 정상인데 내부 테스트(Google Play에서 다운로드)에서만 안 되는 건 거의 100% 키 해시(Key Hash) 불일치 때문입니다.

  • 원인
  • 디버그 빌드: 로컬 키스토어의 디버그 키 해시 사용 → Kakao Developers에 등록되어 정상.
  • Google Play 내부 테스트 빌드: Google Play App Signing 사용 시 Google이 관리하는 앱 서명 키(App Signing Key)로 서명됨.
  • 그래서 업로드한 AAB의 업로드 키(Upload Key)가 아닌 앱 서명 키의 SHA-1을 기반으로 한 키 해시를 등록해야 함.
  • 내부 테스트/비공개 테스트/공개 배포 모두 Google Play를 통해 설치되면 이 키가 적용됩니다.
  • 해결 단계
  1. Google Play Console → 앱 선택 → 설정 > 앱 무결성 > 앱 서명 메뉴로 이동.
  2. 앱 서명 키 인증서 섹션에서 SHA-1 인증서 지문 복사 (업로드 키가 아닌 앱 서명 키 쪽!).
  3. 키 해시 생성 명령어 (터미널/macOS/Linux): echo "복사한 SHA-1 지문" | xxd -r -p | openssl base64
    • Windows라면 Git Bash나 WSL 사용 추천. 결과 예: abcdEFGh1234==
  4. Kakao Developers 콘솔 → 내 애플리케이션 → 플랫폼 > Android → 키 해시에 위 값 추가 등록 (기존 디버그 키 해시도 그대로 유지).
  5. 만약 ProGuard/R8 난독화(minifyEnabled true) 사용 중이라면:
    • 업로드 키 SHA-1 기반 키 해시도 추가 등록.
    • proguard-rules.pro에 Kakao SDK 규칙 추가 (Kakao 공식 문서 참고).
  6. 변경 후 5~10분 기다린 후 내부 테스트 앱 재설치 → 로그인 시도.

이 방법으로 대부분 해결됩니다. 그래도 안 되면:

  • 앱에서 실제 전달되는 키 해시 로그 찍기:
  import com.kakao.sdk.common.util.Utility
  Log.d("KeyHash", Utility.getKeyHash(this))

(Firebase나 다른 로깅으로 테스터에게 전달받아 확인)

  • Kakao DevTalk 포럼에 해당 로그와 상황 올려보세요.

Leave a Comment