유니티 프로젝트와 파이어베이스에서 GPGS 연동과 이를 통한 인증 연동을 다뤄본다.

  • 2026.04.27 수정 - 실제 진행한 프로젝트를 바탕으로 내용 보완

🔗 GPGS 연동

  • Google Play Games Service
  • 사용자 계정을 만들 때 간편하게 구글 플레이 게임즈 계정으로 연동해보도록 하자!
  • 안드로이드 게임들은 거의 대부분이 GPGS로 인증됨

🛠️ 유니티 프로젝트 설정

  • 과정 중 테스트를 위한 유니티 프로젝트를 새로 생성
  • 모바일 프로젝트를 진행 중이니 3D Mobile 탬플릿으로 진행함(GPGS는 안드로이드 기반 기능)

🛠️ 파이어 베이스 프로젝트 생성

  • 데이터베이스 역할을 하는 파이어베이스 프로젝트 생성
  • 모바일 프로젝트에서는 PC와 달리 Analytics를 이용할 수 있음
  • 생성하는 방법은 이전의 파이어베이스 포스트를 참고바람

📝 안드로이드 앱 등록

  1. 플레이 게임즈 콘솔에서의 앱 이름
  1. 파이어베이스에서의 안드로이드 패키지 이름
  1. 유니티 프로젝트에서 설정된 앱 이름

위의 세 가지가 동일해야 함!

✅ 인증 방법 추가

  • 파이어 베이스에서 인증 수단으로 플레이 게임즈를 추가하고자 할 때 요구하는 것은 위와 같음

클라이언트 ID



클라이언트 비밀번호

  • 직접 GCP로 이동해서 찾아도 된다
  • 이것이 비밀번호인데, 다운로드 받을 수 없음. OAuth를 설정하는 과정에서 Json파일을 다운받아 보관했을텐데, 그 안에 있다
  • client-secret 항목임
  • 만약 파일을 다운받지 않았거나 잃어버렸다면, Add secret하면 된다

📌 가이드 참고하기

  • 가이드가 파이어베이스 측에만 있는 것이 아니라, 플레이 게임즈 측에도 따로 있음
  • 파이어베이스 가이드가 너무 오래된 것인지, 제대로 되는 것이 없음

🛠️ Play games Plug-in for Unity

  • 가이드를 따라가다 보면, GPGS 플러그인을 설치해야 함

  • 유니티에 GPGS를 적용하기 위한 외부 플러그인임

  • 최근에는 업데이트로 자동 로그인이 지원됨

  • GPGS 플러그인 깃허브 사이트에 접속해서, Release 탭으로 가면 위의 사진처럼 나옴

  • Source code를 다운받는다

🛠️ Unity 로그인 인증 추가하기

Play Games Plug-in for Unity를 설치한다. 위에서 받았던 알집을 풀면 아래와 같이 나온다.


여기서 current-bulid에 들어간다.

이 유니티 패키지를 설치하면 된다.

구글 버전 핸들러가 알아서 파일 체크 해준다. Apply하자.

🛠️ External Dependency Manager

  • 패키지를 추가했다면, Resolve를 해줘야 함
  • 안드로이드 설정에 대해서 호환성 문제가 없는지 체크해주는 기능

✅ Player 세팅

  • Project Settings - Player - Android로 들어간다.
  • Override Default Package Name을 체크하고, 출시하고자 할 앱 이름을 넣음
  • com.회사이름.앱이름 양식을 지켜야 함
  • 이 이름은 앞서 설명한 것처럼 파이어베이스, 플레이 게임즈 콘솔에서도 사용될 이름임
  • API레벨 설정
  • 앱 성능을 챙기기 위해 IL2CPP로 스크립팅 백엔드를 설정

  • 빌드 용량을 줄이고자 한다면, ARMv7을 체크해제 해도 됨. 필자 폰이 S10 PLUS인데, 잘 돌아감^^

✅ Publishing Settings


모든 안드로이드 앱의 경우 키스토어를 설정해줘야 함

🔑 키스토어 생성

  • 키스토어 파일은 잘 보관해야 한다. 다운 다시 받기 힘듬. 구글드라이브로 모든 팀원들과 공유하는 것이 좋음

    주의

    • 절대 깃허브 레포지토리에 공유되지 않도록 조심하자

  • Create New -> Anywhere를 선택한 다음, 본인이 원하는 로컬 저장소에 저장하면 됨

🛠️ 키스토어 설정

  • 입력된 정보들이 필수 항목들
  • New Key Values에서의 비밀번호는 파일의 비밀번호와 동일해도 됨

속성 설명

  • Alias: 별칭. 앱의 이름 또는 프로젝트의 이름을 넣어도 됨
  • Validity: 50년에서 건들지 말자
  • First and Last Name: 키스토어 발행자의 본인 이름. 넣어도 되고 안넣어도 됨
  • Organizational Unit: 개발 팀, 개발 부서에 해당하는 칸임. 인디 또는 소규모 스튜디오면 공란이어도 됨
  • Organization: 회사 이름. 인디 또는 스튜디오면 팀명을 여기어 넣으면 됨
  • City or Locality: 시/군/구 에 해당함(서울시, 인천시, 부산시 등). 서울시 입력
  • State or Province: 도에 해당함(경기도 등). 서울시 입력
  • Country Code: 한국이니 KR을 적으면 됨

📦 파이어베이스 SHA 인증서 지문

  • 키스토어로 생성된 디지털 인증을 SHA-1 값을 추출해서 파이어베이스 프로젝트에 추가해야 함
  • 이 때 Key Tool을 사용함

🛠️ Key Tool

  • Window 키를 누르고 PowerShell을 치면, 터미널을 열 수 있음
  • 터미널을 연 후, keytool을 입력했을 때 사용하지 못하는 것을 볼 수 있음
  • 이는 JDK가 설치되지 않았거나, 명령어를 수행할 프로그램의 경로 지정이 안되어 있기 때문임

  • 링크에 접속해서 본인의 OS에 맞게 JDK를 설치한다
  • 설치 후, 환경 변수에서 java.exe의 경로를 지정해줘야 함

📌 환경 변수

  • Window키를 누르고 환경 변수를 입력하면 시스템 환경 변수 편집 제어판이 나옴

  • 환경 변수 클릭

  • 시스템 변수 항목에서 Path 속성을 클릭 후, 편집을 누른다
  • 찾아보기를 누른 후, JDK가 설치된 경로의 bin폴더를 추가해야 함
  • 요렇게 추가하면 keytool 사용이 가능함

🎯 Keytool로 인증 추출

  • 터미널(Windows => Powershell)에서 아래와 같이 입력하면 SHA코드를 확인할 수 있음
  • 파일명과 확장자까지 적어야 함
keytool -list -keystore <키스토어 전체 경로.keystore> -v
//예시
keytool -list -keystore C\Unity_Project\Project_GPGS\Keystore\user.keystore -v

  • Enter keystore password가 나오면, keystore를 생성할 때 입력했던 비밀번호를 그대로 입력하면 됨
  • 이때, 어떤 키를 눌러도 커서에는 표시되지 않는데 실제로는 입력되고 있음
  • 결과적으로 SHA-1 코드가 나옴
  • 파이어베이스의 안드로이드 앱 인증서 지문으로 추가하면 됨

📌 구글 플레이 콘솔

구글 플레이 콘솔

  • 안드로이드 앱 개발자 전용 페이지다. 어플을 출시할 때 까지 여기서 모든 설정이 이루어진다.

🛠️ 앱 만들기

  • 출시되는 앱을 만든다. 해당되는 정보들을 입력하고 생성한다.

🧾 대시보드

  • 대시보드에서 제시하는 절차들을 전부 따라가면 게임을 출시할 수 있음

🛠️ Play 게임즈 서비스 클라우드 프로젝트 생성



  • 사진과 같이 진행하면 클라우드 프로젝트 생성 가능

🛠️ OAuth 동의 화면 구성

  • 구글 클라우드 플랫폼으로 이동
  • 시작하기를 누른다
  • 여기서 앱 이름은 스토어에 등록될 앱 이름임
  • 외부를 선택해야 내 조직이 아닌 사람도 테스터로 참여 가능
  • 이 이후로 요구하는 정보들을 마저 입력하고 만들기를 누른다
  • 그러면 OAuth 개요가 생성 됨

✅ 사용자 인증 정보

  • 사용자 승인 정보에 쓰일 OAuth를 추가한다
  • 유형안드로이드, 게임 서버 둘 다 등록할 것이다
  • 신규 설치에 이 사용자 인증 정보 사용 체크
  • 불법 복제 방지 사용사용 체크
  • OAuth 클라이언트 만들기를 누른다
  • 클라이언트 - 클라이언트 만들기를 누른다
  • 여기서 2가지 동일하게 만들 예정임. 웹 애플리케이션Android 2가지 유형으로 2개의 클라이언트를 만들면 됨
  • 이름은 구분하기 쉽게 앱 이름 다음에 웹이면 웹, 안드로이드면 안드 등을 붙이자
  • 안드로이드 클라이언트의 경우, 패키지 이름에는 앞서 설명한 것처럼 com.으로 시작하는 프로젝트의 앱 이름을 넣으면 된다
  • SHA-1 인증서 디지털 지문 또한 앞서 keytool로 얻어낸 코드를 넣는다
  • 만든 이후 다시 콘솔로 돌아간다

✅ 검토 및 게시


이 버튼을 누르면 게시하기까지 필요한 남은 절차들을 알 수 있다.

3가지가 더 필요하다고 나온다.

속성 수정에서 설명을 추가하고 이미지를 추가한다. 여기서 중요한 점이 있는데, 이미지는 사이즈가 정확하게 맞아야 한다.

🛠️ Android Setup - Unity


Android Setup을 켜준다.

Play Console에서 가져온 Android 리소스 스니펫Resources Definition 필드에 집어넣는다.

리소스 보기를 누른다.

이 코드를

여기에 붙여넣는다.

여기다가는 아까 만든 웹 OAuth 클라이언트클라이언트ID를 넣으면 된다.

여기에 들어오면 오른쪽에 있다.

✅ 빌드 테스트

셋업이 끝났다면 이제 빌드가 잘 만들어지는지 테스트 해본다.
테스트가 성공하면 다음 단계로 넘어가자

📝 스크립트 작성

인증이 제대로 되는지 테스트하기 위한 스크립트

using UnityEngine;
using GooglePlayGames;
using GooglePlayGames.BasicApi;

public class GPGSTester : MonoBehaviour
{
    public void GPGSTest()
    {
        PlayGamesPlatform.Instance.Authenticate(OnAuthenticated);
    }

    private void OnAuthenticated(SignInStatus status)
    {
        if (status == SignInStatus.Success)
        {
            Debug.Log("로그인 성공");
        }
        else
        {
            Debug.LogWarning("로그인 실패");
        }
    }
}

✅ 빌드 테스트

이제 다시 빌드를 뜨고 apk를 돌릴 수 있는 기기에서 테스트 해보면, 게임이 켜짐과 동시에 인증이 뜨는 것을 볼 수 있다.


🎯 그 외의 기능

📦 내부 테스트 버전 만들기

등록된 테스터들만 가능한 기능. 플레이스토어에서 직접 다운받아서 제대로 실행이 되는지 확인하기 위한 방법이다. 가이드 참고.

✅ 파이어베이스에 아이디 등록

인증 자체는 되는데, 현재로써는 파이어베이스에 유저의 아이디가 등록되지 않는다. 파이어베이스 가이드 참고

  • NC VARCO 개발일지 4
    GPGS와 파이어베이스 연동하는 것은 해당 포스트에서 확인할 수 있음

🔗 파이어베이스 애널리틱스 연동

profile
개발 박살내자

0개의 댓글