4171
1
카카오로그인 을 구현하여 디버깅, 릴리즈 문제없이 다 마치고
가이드된대로 스토어의 sha-1 로 해시키도 만들어서 앱을 출시 하였는데
invalid android_key_hash or ios_bundle_id or web_site_url 이문제로 로그인이 안됩니다.
key hash 는 아래와 같이 플랫폼 안드로이드에 등록 하였습니다.
FKfF***
WG5***
xDvt***
아래키는 스토어에 등록된 버전의 키를 콘솔 로그로 찍어서 봤을때
xDvt***
이것으로 확인 됩니다.
그런데 nvalid android_key_hash or ios_bundle_id or web_site_url
이 오류가 발생 합니다.
왜 이러는것이며, 어떻게 해결해야 하나요?
안녕하세요.
확인을 위해 앱 ID 부탁드립니다.
앱ID
https://developers.kakao.com/ 의 내 애플리케이션에 표시되는 ID 값 입니다.
숫자로된 ID 입니다
ex) 123456
tim.l
7
에러 발생하는 앱에서 디벨로퍼스로 전달하는 키해시는
다음과 같은 형태입니다.
gZFIDbN****************
올바른 키해시를 추출하실 수 없다면, 로깅하셔서 확인 부탁드려요.
Android 키해시 문제 종합 안내 - 릴리즈키해시, 디버그키해시
4171
9
아래 코드에
var keyHash = Utility.getKeyHash(context)
Log.d(TAG, “KeyHash: $keyHash”)
이부분도 포함하여 두번 찍어 봤으나 동일하게
xDvt3q***
이값으로 확인 됩니다.
4171
10
object KakaoKeyHashUtil {
private val TAG = “KakaoLoginHelper”
fun printKeyHash(context: Context) {
var keyHash = Utility.getKeyHash(context)
Log.d(TAG, “KeyHash: $keyHash”)
try {
val packageInfo = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
context.packageManager.getPackageInfo(
context.packageName,
PackageManager.GET_SIGNING_CERTIFICATES
)
} else {
context.packageManager.getPackageInfo(
context.packageName,
PackageManager.GET_SIGNATURES
)
}
val signatures = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
packageInfo.signingInfo.apkContentsSigners
} else {
@Suppress("DEPRECATION")
packageInfo.signatures
}
for (signature in signatures) {
val md = MessageDigest.getInstance("SHA")
md.update(signature.toByteArray())
val keyHash = Base64.encodeToString(md.digest(), Base64.NO_WRAP)
Log.d(TAG, "KeyHash: $keyHash")
}
} catch (e: Exception) {
Log.e(TAG, "Unable to get key hash", e)
}
}
}
스토어에 배포된 앱에서 위와 같은 코드를 넣어서 확인 했으나
계속 “xDvt***” 이 값으로 만 확인 됩니다.
혹시 gZFIDbN… 이값을 알려주실 수는 없으신지요?
가이드 된대로 플레이스토어 콘솔의 키로
echo -n “C43*****” | xxd -r -p | openssl base64
키를 생성해도, 위에 말씀 드린대로 스토어에 배포된 앱으로 keyhash 를 찍어봐도 xDvt3***
이 값에서 전혀 바뀌지 않습니다…,
gZFIDbN… 이키 알려주시면 감사하겠습니다…,
Android 키해시 문제 종합 안내 - 릴리즈키해시, 디버그키해시
안녕하세요.
아쉽지만 키 해시 값을 확인해 드릴 수 없습니다.
로깅하신 정보는 스토어에 배포된 앱이 아닌 로컬 빌드하신 앱에서 추출하신 정보로 보입니다
스토어에 배포 시 Play 앱 서명 정책에 따라 키 해시 값은 변경됩니다.
앞서 안내된 가이드를 참고하시어 키 해시 확인 부탁드립니다.
추가로, 본 글은 공개된 글 입니다.
콘솔 키 및 키 해시와 같은 민감 정보가 유출되지 않도록 부탁드립니다.
(문의 글의 내용은 마스킹 하였습니다.)
4171
13
스토어에 내려 받은 앱으로 로깅해서 확인한것 맞습니다.
어떤 값이 로컬 빌드 정보로 판단 하시는것 인지요?
xDvt3qzuJl/******* 이것인가요?
gZFIDbN… 이것 인가요?
xDvt3qzuJl/******* 이값은 구글플레이 콘솔의 sha-1 으로 뽑은 키해시 입니다.
비공개 테스트로 앱을 게시하여
var keyHash = Utility.getKeyHash(context)
Log.d(TAG, “KeyHash: $keyHash”)
이렇게 찍어서 봤을때도 xDvt3qzuJl/******* 이값으로 확인됩니다.
4171
14
정리해서 말씀 드리면
디버그 했을때 확인 되는 키: WG5***
릴리즈 했을때 확인 되는 키: FKfF***
스토어에서 내려받았을때 키: Dvt3qzuJl/*****
이렇습니다.
아래 댓글에 대한 문의 ( 더이상 댓글 달지 못한다 하여 여기에 남깁니다. )
네 알겠습니다. 그렇다면
gZFIDbN…
이값은
1.0.5 버전에서 화인 되는 값일까요?
회원님 앱의 게시일자가 8일 1.0.5로 확인되어 지금 테스트 중이신 걸로 보이는 1.0.6 버전은 로컬 빌드로 판단하였습니다.
키 해시 이슈는 카카오 SDK와 무관한 문제로 아쉽지만 회원님께서 직접 추출 및 확인 하셔야만 합니다.
도움을 드리고자 앞자리 일부는 안내드리고 있으나 전제 정보는 보안상 제공해 드리지 않는점 양해 부탁드립니다.