본문 바로가기

전생의 기억/Unity

Unity - 구글 리더보드(Google Leader Board) 연동 중, Play Game에 문제가 발생했습니다. 해결 방법

증상

Google Play Game Service의 Leader Board를 사용하기 위해 연동을 하였는데, 점수 제출 후, 반복적으로 Play Game에 문제가 발생했습니다 메시지가 뜹니다.

 

 

결론

결론은, Google Play Console의 Game Service탭에서 생성한 연결된 앱의 Client ID와 Google Develop 페이지의https://console.developers.google.com/apis/credentials OAuth 2.0 클라이언트 ID로 등록된 Client ID가 서로 일치하지 않아 발생하는 문제입니다.

 

내 맘대로 해결방법

1. 기존의 게임 서비스 탭에 연결된 앱으로 생성 및 출시되어 있는 연결된 앱 - 게임 출시 취소

 

2. 기존의 OAuth 2.0 클라이언트 ID로 등록된 사용자 인증 정보 전부 삭제합니다. (정말로.. 꼭)

3. Release(배포용 빌드) apk에서 배포용으로 동작할 Client ID 등록에 필요한 SHA-1 키

 

 

3번의 SHA-1 키 위치 : Google Play Console - 내 앱 - 출시관리 - 앱서명 탭에 보면 앱 서명 인증서라고 있습니다.

해당 키를 복사후, SHA-1 :    <-- 요부분은 제거하고 키로 사용하시면 됩니다.

 

4. Release 용 APK를 위한 사용자 인증 정보를 만드는 작업을 합니다.

4.1. 3번에서 얻은 앱 서명 인증서를 이용하여 OAuth 클라이언트 ID를 생성합니다. (패키지명 필요)

4.2 Google Play Console에서 내 게임 서비스의 연결된 앱으로 이동합니다.

4.3 다른 앱 연결 눌러서 플랫폼을 선택합니다.(저는 Unity Android) 이후, 패키지명 등.. 입력하고 임시저장하기를 누릅니다.

4.4 방금 생성한 연결된 앱을 클릭해보면 Client ID를 확인해볼 수 있습니다.

 

4.5 Google Develop에 있는 사용자 인증정보(Release 용)과 Google Play Console의 연결된 앱에 뜨는 Client ID가 일치하는지 확인합니다.

 

5. Debug(개발자용 빌드) apk에서 테스트용으로 동작할 Client ID 등록에 필요한 SHA-1 키 

 

5번의 SHA-1 키 위치 : Google Play Console - 내 앱 - 출시관리 - 앱서명 탭에 보면 업로드 인증서라고 있습니다.

해당 키를 복사후, SHA-1 :    <-- 요부분은 제거하고 키로 사용하시면 됩니다.

 

5번은 3번과 동일한 루틴으로 작업하되, 연결된 앱 작성시에, 구분을 위해 접미사로 For Debug 라고 앱 이름을 작성하면 될듯 합니다.

 

마찬가지로, 가장 중요한 것은, 새로 작성한 연결된 앱에서 확인할 수 있는 Client ID와, Develop 페이지의 OAuth2 Client ID가 정확하게! 일치하는지 꼭! 꼮! 확인하는 것입니다.

 

화이팅입니다. :)

 

내 경우의 원인

OAuth2 Client ID가 없는 상태로 바로 Google Play Console의 게임 서비스 생성 및 연결된 앱 생성 -> 연결된 앱의 Client가 자동으로 생성된다. -> 이후에 Google Develop 페이지에서 사용자 인증용 Client ID를 생성한다 -> 연결된 앱의 Client ID와 실제 사용자 인증용 Client ID가 다름 -> 인증 실패 및 Google Play Game API 오류율이 폭발적으로 증가한다...

 

출처 : https://github.com/playgameservices/play-games-plugin-for-unity/issues/2045