본문 바로가기

Develop

Android 앱의 카카오 로그인 문제 해결하기 - 키해시와 앱 서명의 이해

안드로이드 앱에서 카카오 로그인 구현 시 가장 흔히 발생하는 문제 중 하나는 Play Store 배포 버전에서 로그인이 실패하는 현상입니다. 이 글에서는 이 문제의 원인과 해결 방법을 상세히 알아보겠습니다.

1. 문제 상황

개발자들이 카카오 로그인 구현 시 흔히 마주치는 시나리오는 다음과 같습니다:

  • Android Studio에서 직접 빌드한 Debug 버전에서는 카카오 로그인이 정상 작동
  • 로컬에서 생성한 Release 버전에서도 정상 작동
  • Google Play Store에 출시한 버전에서만 카카오 로그인 실패
  • 로그인 시도 시 "카카오톡과 연결할 수 없습니다" 또는 "키해시가 유효하지 않습니다" 오류 발생

2. 문제의 원인

앱 서명 프로세스 이해하기

문제의 핵심은 앱 서명 프로세스에서 발생하는 키해시 차이에 있습니다:

  • 개발자 키(Upload key)
    • 개발자가 앱을 Play Store에 업로드할 때 사용하는 키
    • APK/AAB 파일에 서명할 때 사용됨
  • Google Play App Signing Key
    • Google Play가 최종 사용자에게 배포하는 앱에 사용하는 키
    • Play Store가 자동으로 관리
    • 실제 사용자가 받는 앱은 이 키로 서명됨

카카오 로그인의 보안 매커니즘

카카오는 보안을 위해 앱의 키해시를 확인합니다:

  • 앱 실행 시 현재 앱의 서명에서 추출한 키해시를 카카오 서버로 전송
  • 카카오 개발자 콘솔에 등록된 키해시와 비교 검증
  • 키해시가 일치하지 않으면 로그인 거부

3. 해결 방법

Google Play Console에서 키해시 확인하기

  1. Play Console 접속 후 해당 앱 선택
  2. '설정 > 앱 무결성' 메뉴로 이동
  3. 'App signing' 섹션에서 SHA-1 인증서 지문 확인
  4. SHA-1 값을 Base64로 변환 (온라인 변환기 사용)
// 키해시 확인을 위한 코드
try {
    val info = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES)
    for (signature in info.signatures) {
        val md = MessageDigest.getInstance("SHA")
        md.update(signature.toByteArray())
        Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT))
    }
} catch (e: Exception) {
    Log.e("KeyHash:", "error", e)
}

 

카카오 개발자 콘솔 설정

카카오 개발자 콘솔에서 다음 키해시들을 모두 등록해야 합니다:

  1. 디버그용 키해시
  2. 릴리스용 키해시 (Upload key)
  3. Play Store 배포용 키해시 (App signing key)

 

4. 안드로이드 앱 서명 이해하기

4.1 개발자 키(Upload key)

  • 역할: Play Store에 앱을 업로드할 때 사용되는 인증서
  • 관리:
    • 안전한 위치에 백업 보관
    • keystore 파일과 비밀번호 별도 보관
    • 팀원 간 공유 시 보안 채널 사용

4.2 Google Play App Signing

Google Play의 앱 서명 프로세스:

  1. 개발자가 Upload key로 서명한 AAB/APK 업로드
  2. Play Store가 이를 검증
  3. Upload key의 서명을 App signing key로 교체
  4. 최종 사용자에게 배포

5. 모범 사례와 권장사항

키해시 관리 베스트 프랙티스

  • 모든 환경의 키해시를 미리 확보하여 등록
  • CI/CD 파이프라인에 키해시 확인 단계 포함
  • 키해시 값 문서화 및 팀 내 공유

테스트 프로세스

  1. 내부 테스트 트랙으로 먼저 배포
  2. 실제 기기에서 로그인 테스트
  3. 문제 발생 시 키해시 재확인

6. 결론

카카오 로그인 문제는 대부분 키해시 불일치가 원인이며, Play Console에서 올바른 키해시를 확인하여 등록하면 해결됩니다. 앱 서명 프로세스를 이해하고 적절한 키해시 관리가 중요합니다.

참고 자료

이 글에서 다룬 내용이 카카오 로그인 구현 시 발생하는 문제 해결에 도움이 되었기를 바랍니다.

반응형