오늘은 KakaoTalk이나 FaceBook의 API를 이용할 때 사용하는 HashKey를 얻는 방법에 대해 정리해 보겠습니다.

보통 Debug용과 Release용 해쉬키가 모두 필요한데요.

각각의 해쉬키를 어떻게 얻는지 하나씩 정리해 보도록 하겠습니다.

 

1. Debug용 해쉬키

카카오SDK의 경우 이러한 해쉬값을 구하는 함수를 제공해 주고 있는데요.

SDK를 implement하였다면, 아래 코드를 실행시켜주면 값을 얻어올 수 있습니다.

 

var mHash = Utility.getKeyHash(this)

 

카카오 SDK를 사용하지 않더라도 어렵지 않게 해쉬키를 얻을 수 있는데요.

아래 코드를 이용해서, Logcat에서 해쉬키값을 얻어오는 것 입니다.

"HashKey:" 다음에 나오는 키값이 바로 Debug용 해쉬키가 되겠지요

 

try {
            val packageInfo = packageManager
                .getPackageInfo(packageName, PackageManager.GET_SIGNATURES)
            for (signature in packageInfo.signatures) {
                val md = MessageDigest.getInstance("SHA")
                md.update(signature.toByteArray())
                val key = Base64.encodeToString(md.digest(), 0)
                Log.d(TAG, "HashUtil: HashKey: $key")
            }
        } catch(e: Exception){
            Log.e("name not found", e.toString())
        }

 

이렇게 얻은 값을 카카오톡이나 페이스북등의 서버에 등록해 주면 됩니다.

 

 

다음으로는 Release용 해쉬키를 얻는 방법을 알아보겠습니다.

 

2. Release용 해쉬키

Release의 경우 예전에는 Release빌드를 만든후, 위와 같은 방법으로 코드를 넣어준 다음 디버깅해서 값을 얻어서 등록하면 되었습니다.

하지만, 구글 플레이 개발자 콘솔에서 Google play app signing 기능을 활성화되어 있다면,

릴리즈 시에, 구글서버에 저장되어 있는 사이닝키로 교체되기 때문에 이 값을 찾아서 등록해 주어야 합니다.

 

GooglePlay Console의 UI는 항상 바뀌는데요.

현재기준으로는 얻어올 앱을 Play Console에서 선택해 준 다음,

"설정 > 앱 무결성"에 들어가면 Play 앱 서명을 볼 수 있습니다.

먼저, 이 중 SHA-1값을 복사해 주시구요.

 

 

 

복사한 SHA1값은 아래와 같은 형태를 보일텐데요.

SHA1: 1A:2D:E3:6A:8A:44:53:73:7A:23:34

 

이 값을 터미널에서 아래와 같은 코드를 이용해 HashKey값을 얻어 내 주면 됩니다.

 

echo <복사한 SHA1 값> | xxd -r -p | openssl base64

 

이렇게 나온 값을 카카오톡이나 페이스북 서버에 넣어주면 됩니다.

 

생각보다 간단하지만, 막상 찾아보려면 막막하신 분들에게 도움이 되었으면 좋겠네요.

이와 관련되어서 업데이트 할 내용이 있으면 이 글을 통해서 업데이트 하도록 하겠습니다.

 

728x90

+ Recent posts