nueijeel

[Android] Firebase App Distribution으로 테스트 배포 후 카카오 로그인 오류 - invalid key hash 본문

Android/에러 및 문제 해결

[Android] Firebase App Distribution으로 테스트 배포 후 카카오 로그인 오류 - invalid key hash

nueijeel 2025. 2. 20. 23:33

 

안드로이드 스튜디오 시뮬레이터에서는 카카오 로그인이 정상적으로 작동하는데

기기에서 배포된 앱을 실행했을 때 카카오 로그인이 안되는 현상이 발생했다.

 

발생한 오류 로그

카카오계정으로 로그인 실패

System.err
W  AuthError(statusCode=401, reason=Misconfigured, response=AuthErrorResponse(error=misconfigured, errorDescription=invalid android_key_hash or ios_bundle_id or web_site_url))

 

 

개발 과정에서 카카오 개발자 콘솔 안드로이드 플랫폼 설정에 이미 디버그용 키 해시를 등록해놓은 상태였기 때문에 무엇이 문제인지 감도 안 잡혔다...

구글링을 해보니 릴리즈 키 해시를 등록해야 한다는데 내가 한건 정식 배포가 아니라 테스트 배포였기 때문에 keystore 등록도 안한 상태여서 릴리즈 키 해시가 존재하지도 않았다....🥺

 

 

 

더 찾아보니 firebase app distribution으로 테스트 배포를 하면 생성되는 apk 파일에 자체적으로 서명이 된다고 한다. (해당 앱은 github action을 통해 dev branch에 merge되면 자동으로 firebase app distribution에 apk 파일이 배포됨)

 

Firebase App Distribution을 통해 앱을 배포할 때, 앱이 자동으로 Android Studio의 기본 “디버그 키스토어”가 아닌 다른 키로 서명될 수도 있음. 따라서 배포된 apk 파일의 키 해시를 구해서 등록해줘야함.


 

그래서 배포한 apk 파일의 키 해시를 직접 구하는 방식으로 해결해 주었다.

 

 


 

해결 과정

 

1.  Firebase Console - App Distribution 메뉴에서 배포된 애플리케이션 apk 파일을 로컬에 다운로드 해준다.

다운로드 버튼을 클릭하면 apk 파일을 내려받을 수 있다.

 

 

 

 

2.  터미널에서 명령어를 실행하여 apk 파일에 대한 키 해시 값을 얻는다.

apksigner verify --print-certs {다운로드 한 apk 파일 경로}

 

이 명령어를 실행했더니

➡️ zsh: command not found: apksigner

라는 문구가 떴다.

 

apksigner라는 명령어가 실행되지 않는 문제이기 때문에

로컬 Android SDK 파일의 build-tools에 apksigner가 포함되어 있으므로 해당 경로의 apksigner를 실행시켜 키 해시를 얻어야 한다.

 

로컬 디렉토리를 확인해보니 Library/Android/sdk/build-tools 경로 하위에 35.0.0 버전 폴더 내부에 apksigner 파일이 있었다.

 

해당 경로를 사용해 명령어를 다시 실행해주면

~/Library/Android/sdk/build-tools/35.0.0/apksigner verify --print-certs {다운로드 한 apk 파일 경로}

 

 

아래와 같이

 

Signer #1 certificate DN: C=US, O=Android, CN=Android Debug

Signer #1 certificate SHA-256 digest: 

Signer #1 certificate SHA-1 digest: 

...

 

서명된 인증 내역이 뜨면서 sha-1 값을 얻을 수 있다.

 

 

 

3.  SHA-1 값을 base 64로 변환하여 키 해시를 구한다.

echo -n “SHA-1 값” | xxd -r -p | base64

 

해당 명령어 실행 결과로 apk의 키 해시를 얻을 수 있다.

 

 

 

4.  얻은 키 해시를 카카오 개발자 콘솔의 플랫폼에 등록해준다.

 

해당 플랫폼에는 디버그 키 해시가 이미 등록되어 있어서

그 값은 놔두고 다음 줄에 apk 키 해시를 등록해주었더니 기기에서 카카오 로그인이 다시 정상적으로 작동되는 것을 확인할 수 있었다!

 

 

 

 

 

 

728x90