카카오링크 키해시(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
- 변환된 키해시를 카카오 데벨로퍼에서 등록해주면 완료