본문 바로가기

[Android] 카카오링크 키해시(keyHash) 이슈 처리

카카오링크 키해시(keyHash) 이슈 처리

ApiError(
    statusCode=401,
    reason=InvalidToken,
    response=ApiErrorResponse(
    	code=-401,
        msg=android keyhash mismatched! caller=~~~~~~~~~~~. check out registered keyhash.,
        apiType=null,
        requiredScopes=null,
        allowedScopes=null
    )
)

현상

  • 이미 구현되어 사용 중인 카카오링크 기능에서 갑작스럽게 키해시(keyHash) 이슈 발생  
  • 디버그 버전에서는 정상적으로 작동하나, 스토어에 올린 App Bundle 버전에서는 '키해시 이슈'가 발생
  • 스토어에 새로 등록 시 GooglePlay App Signing 기능으로 로컬 키해시는 사라지고, 구글 서버의 키해시로 교체된다고 한다
    • 개발자의 로컬 개발 환경에서 릴리즈 키스토어의 시그너쳐가 삭제되고 구글 서버에 저장되어 있는 사이닝키의 시그너쳐로 교체

해결

  • Google Play App Signing 기능으로 인해 변경된 앱의 키해시를 카카오 데벨로퍼에 등록해줘야 한다
  • 스토어에 등록된 앱의 변경된 키해시는 아래의 경로에서 가져와서 Terminal을 이용해 변환이 필요

  • SHA-1 인증서 지문을 복사 후 base64 형태로 변환 (Terminal 사용)
  • 만약 복사한 SHA-1 인증서 지문이 "SHA1:" 으로 시작한다면 이부분은 지워야 정상적으로 변환이 가능 
$ echo {SHA-1 인증서지문} | xxd -r -p | openssl base64
  • 변환된 키해시를 카카오 데벨로퍼에서 등록해주면 완료