반응형

 

 

안녕하세요.

이 글은 이전에 작성한  [Unity] 유니티 구글 플레이 게임 서비스(GPGS) 연동 후 앱 등록을 진행한 것을 기반으로 합니다.

 

[Unity] 유니티 구글 플레이 게임 서비스(GPGS) 연동 후 앱등록

안녕하세요. 구글 플레이 게임 서비스(GPGS) 연동 후 구글 플레이에 등록하는 과정에 대해 알아보도록 하겠습니다. 다음 과정을 거쳐서 GPGS 연동 후 앱등록 해보도록 하겠습니다. 1. Google Play Games plugin fo..

scvtwo.tistory.com

구글 플레이에서 다운로드한 게임을 보면 등록된 구글 계정으로 로그인해서 랭킹을 확인하거나 업적을 달성하는 것을 볼 수 있습니다..

일단 구글 계정을 로그인해야 랭킹이나 업적을 동기화시킬 수 있기 때문에, 로그인부터 알아보겠습니다.

구글 플레이 콘솔 사이트에 접속합니다.

https://play.google.com/apps/publish/?hl=ko

 

Redirecting...

 

play.google.com

그리고 개발자 구글 계정으로 로그인합니다.

 

1. 구글 플레이 게임 서비스 설정

게임 서비스를 누른 후 GOOGLE PLAY 게임 서비스 설정을 누릅니다.

 

게임 이름과 게임 종류를 설정한 후 계속을 누릅니다.

 

그리고 설명과 고해상도 아이콘, 그래픽 이미지를 넣고 다음을 누릅니다.

 

2. OAuth 2.0 클라이언트 ID 생성

구글 플레이 게임 서비스를 인증하려면 게임에 OAuth 2.0 클라이언트 ID가 필요합니다.

연결된 앱을 누른 후 ANDROID 버튼을 누릅니다.

 

패키지 이름을 설정한 후 "저장하고 계속" 버튼을 누릅니다.

다음 "지금 앱 승인" 버튼 클릭.

 

그리고 시작 키를 눌러서 명령 프로토콜(cmd)을 실행시킵니다.

 

여기서 jre 설치된 폴더 경로로 이동합니다.

"cd C:\Program Files\Java\jre1.8.0_231\bin" 를 입력합니다. jre버전에 따라 폴더명으로 들어갑니다.

 

그리고 "keytool -list -keystore D:\unity\QuitTest\user.keystore(해당 앱의 keystore 경로)"를 입력합니다.

그리고 SHA1 키를 복사합니다.

 

그리고 서명 인증서 지문 부분에 붙여 넣고 확인을 누릅니다.

연결이 완료되었습니다.

클라이언트 ID 항목을 복사해놓습니다. 

그 후 목록으로 돌아가기 버튼을 누릅니다.

 

등록할 게임의 유니티 프로젝트를 실행시킵니다.

그리고 Window-Google Play Games-Setup-Android setup... 을 누릅니다.

 

빨간 부분에 아까 복사한 클라이언트 ID를 넣습니다.

그리고 다시 구글 플레이 콘솔 페이지로 돌아갑니다.

 

 

리더보드 이름을 입력하고 저장 버튼을 입력합니다.

 

리소스 받기 버튼을 입력합니다.

코드를 모두 복사합니다.

 

그리고 유니티로 돌아갑니다.

코드를 복사한 후 Setup 버튼을 누릅니다.

 

 

이제 유니티에 실제로 적용을 해보겠습니다.

간단하게 로그인 / 로그아웃 버튼을 만들어서 연동되는 것을 확인하겠습니다.

그리고 구글 로그인을 담당하는 스크립트를 작성해보겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// Text UI 사용
using UnityEngine.UI;
// 구글 플레이 연동
using GooglePlayGames;
using GooglePlayGames.BasicApi;
 
public class GooglePlayManager : MonoBehaviour
{
    bool bWait = false;
    public Text text;
 
    void Awake()
    {
        PlayGamesPlatform.InitializeInstance(new PlayGamesClientConfiguration.Builder().Build());
        PlayGamesPlatform.DebugLogEnabled = true;
        PlayGamesPlatform.Activate();
 
        text.text = "no Login";
    }
    void Start()
    {
        
    }
    void Update()
    {
        
    }
 
    public void OnLogin()
    {
        if (!Social.localUser.authenticated)
        {
            Social.localUser.Authenticate((bool bSuccess) =>
            {
                if (bSuccess)
                {
                    Debug.Log("Success : " + Social.localUser.userName);
                    text.text = Social.localUser.userName;
                }
                else
                {
                    Debug.Log("Fall");
                    text.text = "Fail";
                }
            });
        }
    }
 
    public void OnLogOut()
    {
        ((PlayGamesPlatform)Social.Active).SignOut();
        text.text = "Logout";
    }
}
 
cs

 

로그인 버튼을 눌렀을 때

로그아웃 버튼을 눌렀을 때

 

그리고 apk로 폰이나 애뮬레이터에서 테스트할 때에는 꼭 테스터를 추가해야 합니다.

테스트가 끝난 후

게임 출시가 가능합니다.

 

로그인에는 지금 의미가 없으므로 리더보드 작성 후 출시해보도록 하겠습니다.

 

 

출시 후 문제

연결 중까지만 뜨고, 로그인이 되지 않는 문제가 발생했습니다.

해결 방법

여러 사이트를 검색하면서 알게 되었습니다.

플레이 콘솔의 해당 업플로 들어가서, 출시 관리 - 앱 서명으로 들어갑니다.

그 후 앱 서명 인증서 지문을 복사합니다.

게임 세브 정보로 들어가서 GplayTest로 들어갑니다.

 

그러면 API 및 서비스로 들어가게 되는데, 수정을 누릅니다.

 

이전에 복사한 앱 서명 인증서 지문을 넣습니다.

그리고 저장합니다.

그 후 앱을 실행해서, 로그인이 가능한지 확인합니다.

 

그 외 문제가 있다면, 제가 참조한 사이트를 확인해보시는것도 좋을 것 같습니다.

https://github.com/playgameservices/play-games-plugin-for-unity/issues/1800#issuecomment-310877125

 

[SOLVED] Can't authenticate users, sign in fails · Issue #1800 · playgameservices/play-games-plugin-for-unity

I can't figure it out. I have a feeling that something is happening on services end, but then there's also some weird behavior on my end. Like it works when I just built new apk, it allows ...

github.com

 

 

 

다음"[Unity] 유니티 구글 플레이 게임 서비스 연동 ( 업적과 리더보드 )"편으로 이어집니다.

 

 

[Unity] 구글 플레이 게임 서비스 연동 ( 업적과 리더보드 )

. 안녕하세요. [Unity] 구글 플레이 게임 서비스 연동 ( 로그인 하기 ) 를 이어서 구글 플레이 게임 서비스 업적과 리더보드 연동해보겠습니다. 1. 업적 구글 플레이 콘솔로 접속합니다. https://play.google.com..

scvtwo.tistory.com

 

읽어주셔서 감사합니다~! 수정할 부분이나 질문은 댓글 달아주세요!

 

반응형

+ Recent posts