public String getKeyHash(final Context context) {
PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES);
if (packageInfo == null)
return null;
for (Signature signature : packageInfo.signatures) {
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
return android.util.Base64.encodeToString(md.digest(), android.util.Base64.NO_WRAP);
} catch (NoSuchAlgorithmException e) {
Log.w("HashKey", "Unable to get MessageDigest. signature=" + signature, e);
}
}
return null;
}
이함수를 사용해서 디버그용 해시키는 적용이 잘 되는데
릴리즈키역시 같은 방법으로 해시키를 적용했는데
06-14 16:33:07.631 24817-24817/? E/kakao.sdk: com.kakao.util.exception.KakaoException: AUTHORIZATION_FAILED : invalid android_key_hash or ios_bundle_id or web_site_url
at com.kakao.auth.Session.onAccessTokenCompleted(Session.java:404)
at com.kakao.auth.Session$1.call(Session.java:577)
at com.kakao.auth.Session$1.call(Session.java:546)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
해당 에러가 발생합니다.
무엇이 문제일지…
기존에 다른 프로젝트나 해당 프로젝트의 기존버전은 이런 에러가 나지 않았었습니다.