카카오톡 공유하기를 구현하는 건 어렵지 않다. (물론 직접 만들진 않는다..)
https://github.com/shpongle2634/react-native-kakao-links
shpongle2634/react-native-kakao-links
React-Native Kakao Link Module. Contribute to shpongle2634/react-native-kakao-links development by creating an account on GitHub.
github.com
이 라이브러리를 사용하면 되기 때문이다.
하지만 개발 시에는 잘 되던 공유하기 기능하기 기능이 릴리즈 모드에서는 제대로 동작을 하지 않았다. 물론 짐작대로 사이닝 키 관련 문제였는데 카카오 개발자 콘솔에 키 해시를 적절하게 넣어 주어야 했기 때문이다. 개발 시에는 문서에 나와 있는대로 openssl을 설치하고(그렇다.. 윈도우는 힘들다) keytools를 사용해서 키해시를 구할 수 있다.
https://developers.kakao.com/docs/android#%ED%82%A4%ED%95%B4%EC%8B%9C-%EB%93%B1%EB%A1%9D
Kakao Developers_
더 나은 세상을 꿈꾸고 그것을 현실로 만드는 이를 위하여 카카오에서 앱 개발 플랫폼 서비스를 시작합니다.
developers.kakao.com
그런데 vscode를 사용할 때 약간 문제가 되는 게 있다. 엄밀히 말하면 vsCode를 사용해서 문제는 아니다. 터미널을 열면 윈도우는 가장 먼저 powershell이 나오는데 이게 문제가 된다. powershell에서 저 커멘드를 입력해서 얻는 키 해시와 cmd에서 입력해서 얻는 키 해시가 다르기 때문이다.
https://chichi.space/post/android-debug-key-hash-on-windows/
윈도우 환경에서 안드로이드 debug key hash 뽑아내기
윈도우 환경의 안드로이드 debug key hash 생성 과정에서 제대로 된 28자의 hash를 뱉어내는 대신 그것보다 짧거나 긴, 비정상 해시가 나오는 경우가 있습니다.
chichi.space
결론적으로 cmd에서 얻은 키 해시를 사용해야 한다.
일단 openssl은
https://code.google.com/archive/p/openssl-for-windows/downloads
Google Code Archive - Long-term storage for Google Code Project Hosting.
code.google.com
여기서 다운이 가능한데, 카카오 개발자 포럼?에는 openssl에 따라 키 해시가 다르게 나온다는 것이다. 링크는 까먹었는데, 간단하게 언급하면 openssl-0.9.8e냐 openssl-0.9.8k냐에 따라 값이 다르다고 하는 것이다. 나는 0.9.8k를 받아서 환경변수 등록해서 사용했다.
(참고로 이 외에도 keystore alias가 달라도 바뀐다. 등등....)
이렇게 해서 카카오 개발자 콘솔?에서 앱 해시 키 입력하는 데 넣어주면 된다.
... 디버그 모드에서는.
릴리즈 모드는 뭐가 문제냐
구글 플레이 앱 서명 때문이다.
때문이라니까 나쁜 거 같은데 권장이라고 하니깐.. 좋은 거겠지
아무튼 키 해시값은 결국 keystore의 값을 기반으로 openssl로 ~~해서 만들어지는 값인데,
구글 플레이 앱 서명을 사용하면 내가 로컬이 갖고 있는 release용 키는 단순히 업로드용 키 서명으로 사용되고 실제 앱 서명은 구글 플레이에서 제공하기 때문이다.
그래서 Google Play Console의 앱 서명 부분에 가서 앱 서명 인증서의 sha1을 사용해서 해시 키를 만들어야 한다.
이건 어떻게 만드냐
[안드로이드] 키해시 얻는 방법 (debug keyhash, release keyhash, googlePlay keyhash)
안드로이드에서 카카오톡 로그인이라던가 페이스북로그인 등 API를 사용하기 위해선 키해시를 해당 사이트에 넣어줘야 한다. 키해시 얻는 방법 (debug keyhash, release keyhash, googlePlay keyhash) 디버그 키해..
right-hot.tistory.com
여기 설명을 해주셨다.
근데 마지막을 읽다보면..파이프를 쓰고 xxd 명령어를 를 입력해야 하는데 이 xxd 명령어는 윈도우에는 없는 명령어...
결국 블로그 내용대로 나 역시 크롬의 리눅스 가상머신을 설치했다. (이런 게 있는지 처음 알았다)
TermLinux 명령 행을위한 터미널
소형 온라인 리눅스 가상 머신에 명령 행 콘솔을 제공하는 웹 터미널
chrome.google.com
결국 여기서 커맨드를 입력해서 해시 키를 얻은 후 최종적으로 카카오 디벨로퍼 콘솔에 넣어 줌으로써 해결했다.
echo <구글플레이 SHA-1 인증서지문 입력> | xxd -r -p | openssl base64
이건 약간 주관적일 수는 있으나 내 경우엔 영어 대문자로 시작해서 =로 끝나면 대강 맞는 해시 키 인 듯 하다.
카카오 개발 가이드 문서를 다시 보면 '앱 내 자바 코드로 키해시 구하기'라는 부분도 있기는 하다.
근데 이건 이걸 어디서 호출해야 하는지, 그리고 언제 출력되는지 등등 안드로이드가 너무 익숙하지 않아서 사용하지 않았다. 이걸 사용하면 더 간단하게 키 해시를 얻을 수 있지 않을까 싶기도 하다.
'프로그래밍 > 리액트 네이티브' 카테고리의 다른 글
Status Bar 색 변경하기(feat. Native Base) (0) | 2020.02.28 |
---|---|
리액트 네이티브 인 앱 결제 (0) | 2020.01.21 |
리액트 네이티브 안드로이드 release용 파일 만들기(feat. 파이어베이스 구글 로그인) (0) | 2020.01.21 |