새소식

Unity/이론 | 로직 | 연습

[Unity/Theory] 구글 플레이와 연동하여 기능을 구현하자! (초반 앱 승인하기)

  • -

!!! NOTICE !!!
이 글은 유니티의 이론을 다루고 있습니다!
학습한 정보를 제가 기억하고 추후에도 사용해두기 위해 기록해둔 내용입니다!
이 점 유의하고 봐주세요!

게임 개발자라면 반드시 만나게 될 운명.
"모바일 게임 개발 및 출시" 이다.

그 중에서도 안드로이드 플랫폼에서
가장 큰 규모의 시장인 구글 Play 스토어에서 출시하는 개발자는
관련 기능들을 만나볼 수 있다.

이번 글은 그 기능들을 시작하는 방법부터
사용해보기까지를 정리해보았다.


구글 개발자 계정 생성

개발자 계정은
Play 스토어에 출시하기 위해선 필수로 요구하는 것이다.

개발자는 Play 스토어 관련 기능들을 게임에 적용하기 위해서는
Google Play Console을 접하게 되는데
여기에 진입하기 위해서는 개발자 계정을 요구하며,
계정 생성을 위해선 2020년 9월 13일 기준 25$의 수수료를 요구하고 있다.

따라서, 이번 글을 진행하기 이전에
여러분은 반드시 25$라는 거금(!)을 들여서 계정을 생성해야 한다는 뜻이다.

 

아래 링크를 참조하면
구글 개발자 계정을 생성/결제 하도록 진행할 수 있다.
되도록이면 Gmail을 사용해야 한다.

해당 사이트에서 친절하게 설명되어 있으니
여러분은 아래 사이트에서 해외결제 가능한 카드를 등록하고 결제하면 된다.

https://play.google.com/apps/publish/

 

Redirecting...

 

play.google.com


서비스 할 게임을 설정하기

처음 들어오게 되면 다음과 같은 화면을 볼 수 있다.

Google Play Console 메인 화면

우리가 본격적으로 구글 API를 사용하기에 앞서
서비스 할 게임을 설정해주어야 한다.

각 게임마다 장르는 다르고,
사용하게 될 데이터도 다르기 때문에
새로운 게임을 출시하려고 한다면 서비스할 게임을 각각 설정해주어야 한다.

 

우측 상단에 "게임 서비스"를 클릭,
게임 서비스 메뉴에서 Google Play 게임 서비스 설정 버튼을 눌러서
새로운 게임의 서비스를 설정해보자.

게임 서비스 메뉴

그럼 다음의 화면을 볼 수 있다.

Google Play 게임 서비스 설정 화면

지금 화면에선
게임 내에서 Google API 를 사용하기 위해서 필요한 정보를 받고 있다.

게임 이름 / 카테고리를 선택 후 계속을 눌러주자.
필자는 간단하게 테스트용으로 만들것이기 때문에
Ranking-Sample 로 만들어 보겠다.

 

그럼 다음에 보게 될 장면에선
게임의 세부정보를 보다 자세하게 다룰 수 있도록
화면을 보여주고 있다.

게임 세부정보 화면

이 화면에서 게임 이름과 설명, 카테고리, 저장된 게임,
게임에 사용할 아이콘과 그래픽 이미지를 추가할 수 있다.

저장된 게임은
구글 클라우드를 사용해서 게임을 저장하겠는지 여부이다.

필자는 간단하게 설명과 아이콘만 추가하고 저장하겠다.

게임 세부정보의 그래픽 저작물 등록 화면

이로써 정식으로 서비스할 게임을
구글 플레이 콘솔에 등록하게 되었다.


OAuth 2.0 클라이언트 ID를 생성하고 등록하자

우리의 게임이 구글 플레이 게임 서비스를 사용하기 위해서
해당 게임이 등록된 게임인지 인증 단계를 거치게 된다.

이 단계에서 필요한 값이
OAuth 2.0 ID 이다.

연결된 앱 화면

우리는 웹이 아닌 모바일로 테스트를 거칠 것이기 때문에
ANDROID 버튼을 누를 것이다.

그럼 내부에서 패키지 이름을 설정할 수 있다.

앱 세부정보 입력 단계

유니티에서 설정한 패키지 이름을
이곳에 입력해주어야 하는데,

이는 이후에 게임을 출시하거나 업데이트 하는데
구분을 짓기 위한 이름으로
고유한 이름을 설정해주어야 한다.

필자는 간단히
com.SmokyOnion.RankingTest 로 설정해주었다.


앱 승인하기

이후 다음 단계에서 앱을 승인하고
SHA1 키를 입력해야 한다.

SHA1 키를 얻기 위해서는
유니티 프로젝트에서 안드로이드 Keystore를 생성해야 한다.

 

Keystore 란?
유니티로 개발한 게임을 안드로이드용으로 배포하기 위해서는
해당 게임이 구글 플레이에 등록이 되어있는지 인증이 필요한데,
이 역할을 Keystore가 담당하고 있다.

Keystore를 생성하면
내부에서 SHA1 키를 발급받을 수 있다.
이 키를 앱 승인단계에 등록해두어
내가 출시한 게임과의 연결고리를 만들어주는 셈이다.
다시 말해, 앱의 보안을 위해 만드는 키값이다.

Keystore를 생성할때,
아이디와 비밀번호를 설정하게 되는데
이 아이디와 비밀번호, Keystore 파일은 반드시 잃어버리지 않고 보관해야 하며,
만약 분실했다면 해당 게임을 더 이상 서비스할 수 없을 수도 있다.

추가로 언급하자면
Keystore 안에 여러가지 Key들이 밀집해있는 구조로,
Keystore 가 회사 전체를 의미하는 것이라면
Key는 회사 내에서 개발하는 각 게임 개발팀 각각을 의미한다.

Keystore 구조 예시

 

그럼 직접 Keystore를 생성해보자.

본인이 구현하고 있는 유니티 프로젝트에 들어가서
File -> Build Settings 를 클릭.

먼저 안드로이드에 출시하기 위해서는
안드로이드 플랫폼으로 스위치 해주어야 한다.

Build Setting 화면

플랫폼을 스위치 해주었다면
좌측 하단에 Player Settings에 들어가 Other Settings 탭을 확인하자.

Player Settings 의 Player -> Other Settings 화면

여기서 최우선으로 확인해줘야 할 것은
Package Name 이다.

방금 전에 Google Play Console 에서
서비스할 게임을 설정해두었던 란에 적어주었던
Package 이름과 동일하게 적어주자.

같은 뉘앙스로
해당 메뉴 최상단에 있는
Company Name와 Product Name도 설정해주자.

패키지 이름을 정할 때
com.AAAA.BBBB 로 설정했을 것이다.
이때 AAAA에 들어가는 이름이 Company Name,
BBBB에 들어가는 이름이 Product Name 이다.

 

이후 같은 화면에서 Publiching Settings 를 주목하자.

Player Settings 의 Player -> Publiching Settings 화면

Keystore Manager 버튼을 눌러
생성 화면으로 입장하고,

생성 화면 좌측 상단에 Keystore를 눌러
Create New -> Anywhere 를 클릭해 생성 위치를 선정하자.

Keystore 파일 생성 버튼.

그럼 아래 입력란이 활성화가 된 것을 확인할 수 있다.

가장 상단에 Password는 Keystore 파일의 비밀번호를 설정하는 란.

New Key values 에서 키값을 새로 설정할 수 있다.
Alias는 새로 설정할 Key의 이름,
Password는 Alias와 매치되는 비밀번호(왠만해서 상단이랑 일치시켜주자..)
Validity는 해당 키의 효력을 말한다.

그 아래는 Keystore에 대한 세부 내용이지만
추가해주어도 되고, 안해주어도 큰 관여는 없을 것이다.

First and Last Name은 여러분의 이름,
Organizational Unit 은 커다란 조직 단위가 아닌 팀단위 이름,
Organization 은 조직 단위의 이름(ex : 회사 이름),
City or Locality 는 시/군/구,
State or Province 는 도/시,
Country Code 는 나라별 코드를 입력하면 된다.

필자는 Country Code 만 ko를 입력해주었다.
대한민국을 의미하는 코드값이다.

 

이제 Add Key를 눌러 Keystore를 생성해보자.

만약 이 과정에서 에러가 발생할 수도 있는데,
필자의 경우 다음과 같은 에러가 발생하였다.

망할 에러

이는, 자바 개발 킷(JDK)을 설정한 주소가 맞지 않기에
제대로 설정해달라는 의미이다.

Edit -> Preferences -> External Tools 에서
제대로 된 JDK 의 주소를 입력해주자.

필자의 경우,
JDK 8 (1.8버전) 64비트를 요구했기에
아래 링크에서 다시 설치하여 입력해주었다.

https://www.oracle.com/kr/java/technologies/javase/javase-jdk8-downloads.html

Preferences -> External Tools 화면

 원만하게 진행되었다면
처음 설정한 위치에 Keystore 파일이 생성되었을 것이다.

이제 이 파일을 Publishing Settings 에 설정해주자.

Custom Keystore 를 체크,
Select 드랍메뉴를 클릭해 Keystore 경로를 지정해주고,
아래 Password 들과 Alias를 입력해주자.

사실, 처음 생성할 때
해당 프로젝트에 방금 만든 Keystore를 할당할 것인지 물어보기에
그때 OK를 누른 사람이라면 자동으로 할당해주었을 것이다.

해당 프로젝트에 Keystore 할당하는 메뉴

 

이제 Keystore를 생성하고 할당해주었으니,
SHA1 키를 찾을 시간이다.

명령 프롬프트(콘솔)를 열어
본인이 설치되어 있는 jre 폴더로 이동하자.
필자의 경우, "cd C:\Program Files\Java\jre1.8.0_261\bin" 명령어를 입력해 이동하였다.
jre 버전에 따라 다르기 때문에 각자 확인이 필요하다.

해당 폴더 내에는 keytool 이라는 파일이 존재하는데,
이 파일에 본인이 만든 Keystore 파일 경로를 주어 SHA1 키값을 뽑아 낼 것이다.

keytool -list -keystore [keystore 파일 경로] 를 입력하자.
필자의 경우, 다음의 명령어를 입력했다.
keytool -list -keystore C:\GitKraken\Sample_Unity-PlayStoreConsole\Ranking-Sample\keystore\user.keystore

 

그럼 다음과 같이 Keystore 비밀번호를 요구할 것이다.
Keystore를 생성하면서 설정한 Password 를 입력하자.

그럼 Keystore 파일에서 SHA1 코드를 얻을 수 있다.

SHA1 추출

이렇게 얻은 SHA1 키값을
한참전에 띄워둔 Google Play Console 사이트의 앱 승인에 입력해주자.

참 오래도 걸렸던 SHA1 등록

 

드디어 앱 승인까지 완료했다!
다음은 실제로 기능을 사용해보는 단계이다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.