오늘은 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
이렇게 나온 값을 카카오톡이나 페이스북 서버에 넣어주면 됩니다.
생각보다 간단하지만, 막상 찾아보려면 막막하신 분들에게 도움이 되었으면 좋겠네요.
이와 관련되어서 업데이트 할 내용이 있으면 이 글을 통해서 업데이트 하도록 하겠습니다.
'Android 개발 > Android' 카테고리의 다른 글
RemoteConfig 이용해서 다이나믹하게 앱 업데이트 하기 # Android (1) | 2023.03.23 |
---|---|
Target Api 31 ( Android12 ) 에서 적용해야 하는 사항들 # Location Intent Filters exported mutability (0) | 2022.12.01 |
Contentprovider 와 ContentResolver 이용한 CRUD # Mime-type Uri (1) | 2022.11.18 |
Android 리소스 정리시 사용하는 Naming Convention (0) | 2022.11.12 |
Android 에서 동적 권한 얻기 # State registerForActivityResult Runtime Permission (0) | 2022.10.24 |
registerForActivityResult 구현방법 정리 # 예전 onActivityResult (0) | 2021.04.01 |
targetSdkVersion 업데이트 Android10 Q API29 업데이트 강제사항 (0) | 2020.10.09 |
Full Screen Intent Notificaiton 에 관한 정리 # 풀스크린 인텐트 (0) | 2020.10.02 |
Android4를 지원하지 않는 라이브러리들 정리 # API21 이상 (1) | 2020.08.05 |
Android WebView 를 설정하고 로딩하는 방법을 정리해보자 (0) | 2020.03.19 |
댓글