반응형
안드로이드에서 카카오 SDK 적용시
카카오 개발자 사이트에 안드로이드 키해시를 등록해야 한다.
그리고 키해시 구하는 방법은 개발가이드에 잘 설명되어 있다.
https://developers.kakao.com/docs/android#%ED%82%A4%ED%95%B4%EC%8B%9C-%EB%93%B1%EB%A1%9D
그런데 이번에 SDK동작 이상으로 디버깅 하다보니
위 가이드에서 설명한 커맨드라인 방법과, 자바코드 방법의 결과가 다르다!
[참고]
커맨드라인으로 구하기
keytool -exportcert -alias androiddebugkey -keystore <debug_keystore_path> -storepass android -keypass android | openssl sha1 -binary | openssl base64
자바코드로 구하기
public static 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 Base64.encodeToString(md.digest(), Base64.NO_WRAP);
} catch (NoSuchAlgorithmException e) {
Log.w(TAG, "Unable to get MessageDigest. signature=" + signature, e);
}
}
return null;
}
카카오 SDK는 자바로 키해시를 구하게 되므로, 자바로 구한값을 입력해야 정상동작 하였다.
{{USERHOME}}/.android/debug.store 를 지우고 재생성된걸로 해보니, 값이 같다.
커맨드라인에서 사용하는 openssl 버전이 영향을 준다.
참고로 필자는 0.9.8k에서 위 이슈가 발생하였고, 1.0.2o에서는 발생하지 않았다.
openssl 버전에 관해서는 별다른 코멘트는 없으나, 1.0.0 이상 버전을 사용하는 것이 좋겠다.
반응형
'dev > android' 카테고리의 다른 글
[Android M] Apache HTTP Client Removal (0) | 2017.01.23 |
---|---|
[android] dump internal sdcard (0) | 2016.05.14 |
Google Map API V1 to V2 migration (0) | 2016.02.13 |
[Android ICS] init.d enabled (0) | 2013.02.12 |
안드로이드 롬업 후 SMS MMS 문제 (0) | 2013.02.05 |