유니티 프로젝트에 페이스북 SDK를 사용했을때, 가장 처음 당황(물론 그 전에도 구글 resolver 맞추느라 고생하지만)하는 부분이 바로 페이스북 해시키입니다.

 

분명히 프로젝트에 페북 SDK 붙일때 facebook app id를 입력하면 자동으로 생성이 되었고, 페이스북 개발자 콘솔에 해당 해시키를 입력하고 잘 되었기 때문입니다.

그런데, 이때 만든것은 바로 Debug 안드로이드 키 해시로 소위 개발용이라고 보시면 됩니다.

개발 중에도 페이스북 sdk가 잘 붙었는지 확인을 위한 키 해시라는 것이지요.

 

유니티로 만든 앱이 완성이 되어서 출시를 한다면, 출시 즉 배포용 빌드에는 배포용 키해시를 등록하지 않으면 안됩니다.

이를 위해서 openssl 이라는 프로그램을 받아서 하게 되는데요.

물론 이 방법도 엄청난 혼돈을 가져오기는 하지만, 한번 제대로 해 놓으면 그 다음부터는 경로만 바꿔서 잘 쓸 수 있습니다.

하지만, openssl이 없이도 해시키를 간단하게 추출하는 방법이 있습니다.

 

JDK는 유니티에서 빌드를 만들기 위해서 기본적으로 필요한 것이니 이미 있을 것이므로, OPENSSL 없이도 배포용 키해시 구하는 방법 알려드립니다.

 

유니티 페이스북 SDK 배포용 키해시 추출하기

배포용 키해시를 추출하는 것은 크게 2단계로 나뉩니다.

각 단계별로 한번 보시기 바랍니다.

 

1. 키스토어에서 sha1 hex 키 얻기

 

키 해시는 유니티 프로젝트를 배포용으로 빌드를 할때 필요한 keystore를 base64로 컨버팅 한 것입니다.

이 키 해시가 페이스북 개발자 콘솔에 등록되어 있어야, 앱이 페북 SDK 기능을 사용하는 권한을 가지게되는 것이죠.

배포용 키해시를 얻기위해 가장 처름 해야 할 것은 바로, 키스토어 안에 있는 hex 코드입니다.

hex 코드를 구하기 위해서는 cmd 창에서 keytool 이라는 jdk 기능을 이용해야 합니다.

 

cmd 어디서든 위와 같이 명령어를 입력 후에 엔터를 칩니다.

붉은색 부분이 있는 곳은 keystore 위치인데요. 만약, 현재 cmd에서 명령어를 입력하는 곳과 위치가 다르다면 해당 경로를 모두 적어줘야 합니다.

 

노란색 부분은 alias라고 유니티에서 키 스토어를 만들때 스스로 만들어내는 이름입니다.

user는 디폴트 이름이었던 것으로 기억합니다. 아무튼 그때 만들었을때 alias 를 입력합니다.

 

키스토어 비밀번호 입력시 커서 안움직인다고 당황하지 마세요

 

이렇게 하면 비밀번호를 묻는데요.

해당 키스토어의 비밀번호를 입력합니다. 그런데 입력을 해도 키 입력이 되지 않습니다.

그래서 다시 쓰다가 에러가 나는 경우가 많은데요.

과감하게 그냥 적습니다. 보이지 않지만 적혀있다는 것입니다.

정상적으로 입력했다면 줄줄이 정보가 나오면서 인증서 지문이란 곳이 생깁니다.

인증서 지문에는 MD5, SHA1, SHA256 3가지가 나오는데, 여기서 SHA1 부분을 드래그해서 복사합니다.

 

혹시 모르니 메모장 같은데 복사해 놓습니다. 이렇게하면 일단 페북 sdk 배포용 키 해시에 필요한 hex를 얻은 것입니다.

 

2. hex base64 키해시 변환하기

 

sha1 hex 키를 얻었으니 이제 base64로 변환하면 됩니다.

이 역할을 하는 것이 openssl 이지만 지금은 그것을 이용하지 않습니다.

아래 주소는 hex를 base64 인코딩을 해주는 사이트입니다.

 

tomeko.net/online_tools/hex_to_base64.php

 

Hex to base64 converter

Hexadecimal -> base64 string decoder

tomeko.net

접속을 하면 나오는 페이지에서 hex string 이라는 최상위 입력창에 아까 획득한 sha1 hex를 복사 붙여넣기 합니다.

그리고 convert를 누르면 키 해시 값이 나오는데요.

제일 아래 Output(base64)의 내용을 드래그해서 저장합니다.

이 키가 바로 페이스북 sdk 배포용 키해시가 되는 것입니다.

페이스북 개발자 콘솔에 이 해시키를 추가해줍니다. (디버그용 키도 남겨두세요. 유지보수 해야하니까)

 

중요!! 안드로이드 매니페스토 debug false 시키기

 

배포용 키해시도 넣고 해서 구글 콘솔에 올리다보면 에러가 발생합니다.

그 이유는 안드로이드 manifest 파일에서 debuggable 이 true가 되어 있기 때문입니다.

여기를 false로 바꾸고 빌드를 다시 한 뒤에 올리시면 정상적으로 올라감을 알 수 있습니다.

 

정확한 위치는 assets > plugins > android 안에 있는 android_manifest 파일입니다.

잘 안찾아지면 해당 xml 스크립트에서 찾기로 debug 하시면 금방 찾습니다.

 

글 마무리

 

페이스북 sdk를 몇번 붙여보았지만 오랜만에 한번씩 하다보니 늘 어렵게 느껴집니다.

조금 더 편한 방법으로 페이스북 sdk를 붙일 수 있다면 더 많이 활용할 것 같은데요.

 

저만의 생각이 아니라, 이와 관련해서 매번 구글링 할때마다 전세계 개발자들의 외침을 보기 때문입니다.

아무튼 openssl 이 없어도 페이스북 sdk 해시키를 얻을 수 있다는 점 알려드리며 마치겠습니다.

+ Recent posts