Google Play Games Plugin을 Unity에 붙이고 로그인을 시도하면 ERROR_NOT_AUTHORIZED 에러가 발생하면서 로그인이 안되는 경우가 있습니다.
이 문제는 Google Play Console의 설정을 제대로 하지 않은 경우게 발생합니다.
문제 해결을 위해서 두가지를 확인해야 합니다.
첫번째는 Unity에서 GPGS의 설정입니다.
-
Unity에서 <Window-Google Play Games-Setup-Android setup...> 메뉴를 선택합니다.
- 아래와 같은 창이 뜹니다. 이 창의 항목들을 설정해 줘야 합니다.
- Directory to save constant, Constants class name은 적당하게 입력해 줍니다.
Directory to save constant : Resource Definition 에 정의된 값들을 저장한 C# 파일을 생성할 폴더 위치
Constants class name : Resource Definition에 정의된 값들을 저장한 C# Class의 이름 -
Resources Definition은 Google Play Console에서 가져옵니다.
업적, 이벤트 중 하무거나 하나 추가하고나면 '리소스 받기' 메뉴가 나타납니다. 업적과 이벤트를 하나도 추가하지 않고 받아올 수도 있을텐데 버튼이 등장하지 않네요. - Web App Client ID는 입력을 해도 되고 안해도 되는 부분인데 Firebase나 외부 로그인 모듈을 사용하려면 입력해 줍니다.
두번째는 Google Play Console의 설정입니다.
- Google Play Console API 사이트에 접속합니다.
https://console.developers.google.com - OAuth 2.0 클라이언트 ID에서 Android 클라이언트 정보가 있는지 확인해 봅니다.
(아마 별다른 셋팅이 없었다면 없을 겁니다.) - '사용자 인증 정보 만들기' 를 클릭하고 'OAuth 클라이언트 ID'를 선택합니다.
- 아래와 같은 화면이 있고 '서명 인증서 지문' 과 '패키지 이름'을 입력해야 합니다.
- Google Play Console의 프로젝트에서 SHA-1 인증서 지문을 복사하여 4번 항목의 '서명 인증서 지문' 부분에 붙여넣습니다.
만약 인증서를 업로드 하라거나 어쩌구 메시지가 뜨면 APK를 빌드할 때 사용한 key store를 등록해야 합니다. 관련 정보는 해당 메뉴의 도움말을 참고하세요.
업로드 인증서를 실수로 입력하는 경우가 많으니 주의!
4번 항목의 '패키지 이름'은 Unity에서 APK를 빌드할 때 사용한 것을 넣어줍니다.
위의 두가지가 조금이라도 잘못 설정되어 있으면 로그인이 제대로 안됩니다.