Android 키해시 문제 종합 안내 - 릴리즈키해시, 디버그키해시

카카오 키 해시 가이드 https://developers.kakao.com/docs/latest/ko/android/getting-started#before-you-begin-add-key-hash
구글 Play Console 앱 서명 사용 안내 https://support.google.com/googleplay/android-developer/answer/9842756?hl=ko


들어가기 전에

키해시는 설치된 앱에서 카카오로 전달하는 값으로 다른 환경에서 빌드했다면 다른 값이 전달됩니다.
구글에 등록된 인증서를 변경한 경우 키해시가 잘못 구해지는 경우가 있으므로 구글에 문의하여 확인합니다.

키해시를 잘 등록했는데 안되는 경우는 없으므로, 정상작동하지 않는다면 코드로 로깅해서 키해시 구하는 방법이 가장 확실합니다.

[Android]
import com.kakao.sdk.common.util.Utility
var keyHash = Utility.getKeyHash(this)

[Flutter]
print(await KakaoSdk.origin);

1. 에러 표기

“잘못된 접근입니다. 인증에 실패하여 페이지에 접근할 수 없습니다. 해당 기능을 제공한 서비스 관리자에게 문의해주세요.”

{
message: "
  AuthError(
    statusCode=401, 
    reason=Misconfigured, 
    response=AuthErrorResponse(
         error=misconfigured, 
         errorDescription=invalid android_key_hash or ios_bundle_id or web_site_url))"
}

2. 릴리즈 키해시 조회

구글 플레이 콘솔에 앱 배포 시, 앱 서명 키는 일반적으로 구글에서 관리하므로 릴리즈 키해시는 "구글 플레이 콘솔"에서 "SHA-1 인증서 지문"을 가져와 Base64로 인코딩 해야합니다.

반드시 앱 서명 키 인증서에서 지문을 가져와야합니다.

image

키해시 생성

echo "{SHA-1 인증서 지문}" | xxd -r -p | openssl base64 

3. 디벨로퍼스 설정에 키해시 등록

image

4. 문제 사례

  1. windows powershell 에서 SHA-1 인증서 지문 변환 시, 다르게 변환되는 사례가 있습니다.

아래 Git Client 설치하시면 bash 라는 명령 실행 도구가 같이 설치됩니다.
윈도우에서 리눅스 명령어를 사용할 수 있으며, 정상 변환 되는 것 확인됨.
https://git-scm.com/downloads

  1. 낮은 Open SSL 버전 사용 시, 잘못 변환된 케이스 확인됨.

  2. 공개 배포된 앱이 아닌 비공개 테스트, 내부테스트는 구글 플레이 콘솔에 설정하신 방법에 따라 다른 키해시 적용될 수 있으므로 SHA1 인증서 지문으로 변환된 키해시가 일치 하지 않는경우

구글에 문의 하거나 앱내 키해시 로깅하셔서 확인 권장합니다.

[Android]
import com.kakao.sdk.common.util.Utility
var keyHash = Utility.getKeyHash(this)
1개의 좋아요