티스토리 뷰

반응형

에러

앱을 배포한 후에 카카오톡으로 로그인이 안된다는 문의가 많았다. 하지만 아무리 qa를 해도 내부 기기에서는 오류가 파악이 안되는 문제가 있었다. 제법 골치아팠는데 알고보니 로컬에서(안드로이드 스튜디오로 디버깅 할 경우)할 때는 로그인이 잘 되지만 플레이 스토어에 릴리즈 한 경우에 문제가 생기는 것이었다.

 

자세한 로그를 확인해보기 위해 adb로 연결해서 확인해보았다. 

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

안드로이드 키 해시가 잘못됐다는 에러였다.

근데 로컬에서 테스트 할 때랑 플레이스토어를 통해서 릴리즈 했을 때랑 같은 코드인데 그럴 수가 있나? 엄청 혼란스러웠다. 

 

 

해결 방법

'카카오톡으로 로그인'을 처음에 설정할 때 카카오 디벨로퍼스에 들어가서 클라이언트의 키 해시를 등록해줘야 한다. 기존에는 앱에서 구하는 방식으로 키 해시를 찾아서 등록을 해놨었는데, 알고보니 플레이스토어에서 릴리즈가 되면 로컬 환경에서의 키 해시와 다른 키로 교체가 된다고 한다. 

만약 구글 플레이 개발자 콘솔에서 Google play app signing 기능을 활성화시키셨다면 구글 플레이에 앱이 릴리즈되기 전에 개발자의 로컬 개발 환경에서 릴리즈 키스토어의 시그너쳐가 삭제되고 구글 서버에 저장되어 있는 사이닝키의 시그너쳐로 교체됩니다. 그렇기 때문에 이 사이닝키로 생성한 키해시 또한 등록해줘야 합니다.

따라서 이 키 해시를 구글 플레이에서 제공하는 키로 교체해줘야 한다. 

 

 

 

플레이스토어 > 설정 > 앱 무결성에 들어간 후

앱 서명 키 인증서 > SHA-1 인증서 지문를 복사한 후 base64로 바꿔주면 된다.

 

 

base64 변환 값은 터미널에서 

echo [인증서 지문] | xxd -r -p | openssl base64

이렇게 하면 쉽게 구할 수 있다. 

 

 

카카오 디벨로퍼스에서 플랫폼 정보에 키 해시를 교체해주면 된다. 

 

저기만 바꿔주면 클라에서 다른 변경을 해주지 않아도 바로 잘 된다! 

왜 배포된 버전으로 테스트 해 볼 생각을 못했을까... 

 

 

 

참고

 

adb로 앱 실행시키는 방법

기본 adb 명령어 사용 방법은 아래와 같습니다.   adb shell am start -n com.package.name/com.package.name.ActivityName 히트를 예로 들면... 아래처럼 사용하면 됩니다.   adb shell am start -n com.nexo..

startup-blog.tistory.com

 

반응형