동글동글 라이프

[안드로이드] 구글 리더보드 연동하기 삽질의 흔적들... (Google LeaderBoard) 본문

Android

[안드로이드] 구글 리더보드 연동하기 삽질의 흔적들... (Google LeaderBoard)

동글동글 라이프 2018.09.09 04:59

안녕하세요


동글동글 라이프의 동글 아빠입니다.



게임을 출시하고 광고까지 넣어 한시름을 놓았지만


개인적인 목표를 하나 잡고 공부하기 시작했습니다.



그것은 바로..


"구글 리더보드를 연동하여 게임 시 최고 점수 보여주기"


였습니다.



아주 빠르게 안드로이드 진도를 나갔던 상황에서


뭐 어렵겠어? 하면서 자만했었습니다.



하지만...


기초도 없는 상황에서 다양한 삽질을 하기 시작했고


구글 플레이 콘솔도 융통성이 없는 상황이라 많은 고생을 하였습니다.



그 기록들을 여기에 남겨 혹시나 저와 같은 상황이 발생하실 때


참고하였으면 하네요.



먼저 구글 리더보드를 한글로 검색해 보면 유니티 예제가 나옵니다.


저는 유니티로 앱을 개발한 것이 아니기 때문에 


해당 코드나 예제를 사용할 필요가 없다고 판단했습니다.



그래서 제일 먼저 참고한 사이트는 아래 사이트 입니다.


https://developers.google.com/games/services/android/leaderboards




점수를 등록하려면 Games.getLeaderboardsClient 사용하면 되고


리더보드 UI 를 표시하려면 아래 showLeaderboard 함수만 추가하면 끝이네?


하고 Before you begin 을 확인을 하지 못 했습니다..



Gmaes 를 import 하고 리더보드 만들어서 연동하고 실행시키니


당연히 안됩니다.



리더보드만 연결한다고 되는 것이 아니라 


사전에 해줘야 하는 작업이 있었죠.



그것은 바로 구글 로그인 이었습니다.


구글 로그인이 되어 있어야 그 정보를 바탕으로 리더보드에 등록이 가능했죠.


지금 생각하면 아주 기본적인 내용인데 이것 참...




구글 로그인을 구현하기 위한 문서와 


소스코드 예제를 다 살펴보며 적용해 보기 시작했습니다.



간단한 팁을 드리자면 구글 로그인을 할 때 옵션으로


GoogleSignInOptions.DEFAULT_SIGN_IN 으로 로그인을 하시면 리더보드가 연동이 안됩니다.


GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN 으로 로그인을 시도해야 합니다.




<< 이런 모양이 나와야 하죠 >>




이후 Test 를 하며 구글 로그인을 구현을 하였는데


계속 fail이 발생하길래 확인해 보니 Google API 가 등록이 안된 문제였죠.




API 콘솔 프로젝트에서 API 를 등록하고 다시 디버깅 했는데


그래도 계속 fail 코드가 뜨면서 동작이 되지 않더군요.



이때 GG 를 치고 에라이 정말 모르겠다 싶어서 쉬다가


다음날 다시 안드로이드 스튜디오를 실행해서 실행을 시켜봤습니다.



이럴 수가... 구글 로그인이 잘 동작 되더군요.


Google API 가 바로 적용되는게 아니라 시간이 좀 걸리는 문제였습니다.


(구글 API 가이드에서는 5분만에 적용된다고 되어 있는데 아닌 것 같더군요)


- 역시 안될 때는 다음날에 하면 해결됩니다.




<< 이 화면까지 오는데 얼마나 많은 삽질이 있었던가.. >>



구글 로그인 후 리더보드가 잘 동작 되는 것을 확인하고


이제 끝났구나 생각이 들어 최고 점수를 Submit 후 


다시 구글 리더보드를 실행시켰더니 리더보드가 뻑이 나더군요 켁!!!


이 문제에서 막혀서 또 하루를 보냈습니다.



여러가지 키워드로 아무리 찾아도 안 나오길래


검색을 끈질기게 해보니.. 두둥.


https://stackoverflow.com/questions/43303542/google-game-service-leaderboard-cant-show-after-submit-score-on-cocos2d-x-andro


OAuth2 configuration 의 문제라고 하네요.



며칠 전에 이것저것 막 삽질을 할 때


앱에 연동된 OAuth API 를 삭제했던 기억이 나더군요.




따로 OAuth API 를 만들어서 사용하면 되겠지 하고 지워버리고 다시 만들었는데


아.. 앱에 연결된 고유의 OAuth API 는 수정 할 수가 없었습니다.

 


구글의 융통성 없는 정책에 짜증남이 밀려와


이전 게임을 출시 취소하고 다시 게임 서비스를 만들었습니다.



구글 API 재설정을 완료하니 또 시간이 걸리네요.


기다리는 김에 이번에는 OAuth API 를 제대로 설정해 보자는 생각에


서명 인증서 지문(SHA1) 을 등록하니





흐헝헝 ㅠㅠ 나를 왜 이렇게 괴롭히는 건가...


이전 키들을 다 지워도 계속 이 메세지가 뜨네요.



아무래도 이전 API 키들이 영향을 주는 것 같아 


이때 또 GG 를 치고 하루 정도 기다려봤는데


그래도 중복된 지문이라고 계속 나오는 겁니다.



그래서 결국 해결방법은 원래 Key 를 새로운 키로 만들어서 수정 후 등록했더니


드디어 성공!!



<< 이제 온라인에서 친구들과 점수를 비교 할 수 있게 되었습니다 ㅋㅋ >>




좀 오래 걸리긴 했지만


끈기 있게 연구해서 여기까지 온 것 같네요.


이상 구글 리더보드 삽질기 였습니다!

0 Comments
댓글쓰기 폼