Category Archives: Android

Facebook SDK 연결 시 KeyHash

스크린샷 2013-12-09 오후 5.49.31

페이스북 개발자 계정에 들어가 앱을 등록하고 안드로이드 설정을 하려면 보이는 바와 같이 Key Hashes 를 등록하라고 나온다. (보안을 위해 아이튠즈 미니플레이어로 가림ㅋㅋ)

안드로이드에서 사용하는 키스토어에는 두가지 종류가 있는데 debug 용과 production 용이 있다. 너무도 당연한 얘기지만 테스트를 위해서는 debug용이 필요하고, 실제로 스토어에 올릴 때는 production용이 필요함. 양쪽 모두를 테스트하려면 여기서도 두개 모두 입력해야한다. 아래는 두가지 키스토어를 페이스북용 키해시로 추출하는 명령이다.

for debug

keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64

for production

keytool -exportcert -alias (#keystore alias) -keystore (#keystore_path) | openssl sha1 -binary | openssl base64

여기서 볼드체로 표현한 부분이 개발환경에 따라 수정해야 할 부분이다. 일단 디버그용 키스토어의 경우 debug.keystore 파일이 어디 있는지 찾아야 cert 를 추출할 수 있는데 맥의 경우 ~/.android/debug.keystore 에 있다. 윈도우는 뭐 어디 있겠지(ㅋㅋ) 프로덕션용 키스토어는 플레이스토어에 올리기 위해 만든 키스토어를 사용하면 된다. path 와 alias 모두 그거 만들때 직접 입력한 것일테니 모르면 안된다. (다시 만드는 거 말고는 답이 읎다)

keytool 이거 java 로 만들어진 코드인데 java 답게 UTF-8 터미널 환경에서 한글이 죄다 깨진다. 이런 경우

java -Dfile.encoding=utf8 sun.security.tools.KeyTool …

이렇게 입력하면 한글이 제대로 보인다. 뭐 keytool 사용법 체크하는 용도 말고는 쓸 데가 그닥 없어서 깨지는 그대로 쓰기로 한다. 다만 저거 깨지는게 대체 뭔가 하면서 찾아봤을뿐ㅋ

 

디버그 할 때는 잘만 되던 ‘페이스북 로그인’이 스토어에 올리자마자 먹통이 된다면 100% 이 문제라고 보면 되겠다.