본문 바로가기

Game Make

Block Puzzle 만들기 (7)

이제 구글 플레이 서비스와 연동하여 리더보드를 구현해 보겠다.

(나도 할 때마다 헤깔려서 절차를 기록해 놓는 목적도 있다.)

 

먼저 안드로이드로 출시하기 위한 사전 작업을 해야 한다.

일단 플랫폼을 안드로이드Android로 전환해야다.

Unity3D가 멀티 플랫폼을 지원하기 때문에 별다른 플랫폼 종속 기능이 있는게 아니라면, 버튼 한번으로 해결되는 일이다.

빌드 셋팅에서 Android를 선택하고 Switch Platform 버튼을 누르면 된다.

문제는 한번 Switch를 실행하면 엄청 오래 걸린다는 것 정도?

그래도 이번 프로젝트는 아무 문제없이 전환이 되었다.

 

이제 Player Setting을 손보자.

Edit > Project Setting > Player 순으로 들어가면, 앱에 관련된 여러 설정들을 조정할 수 있다.

 

1. 앱 이름을 설정하자.

일단 앱 이름은 Doku Block Puzzle 로 정했다. 

(워낙에 비슷한 이름들이 많이 판치는 장르라서 이름 정하는게 여간 어려운게 아니었다.)

나중에 문제가 될지도 모르지만 일단 이렇게 정해 두고 진행해 보자.

 

2. 아이콘

https://developer.android.com/distribute/google-play/resources/icon-design-specifications

 

Google Play 아이콘 디자인 사양  |  Android Developers

Google Play의 앱/게임에 새로운 아이콘 체계가 도입됩니다. 여러 개발자 아트워크가 Google Play의 다양한 UI 레이아웃, 폼 팩터 및 기기에 더 자연스럽게 어울리도록 만들 뿐 아니라, Google Play에서 더

developer.android.com

아이콘의 다지인 가이드 라인은 이 사이트에서 확인할 수 있다.

일단 Unity3D 에서는 배경Background과 근경Foreground 두가지 이미지를 사용하여 아이콘을 구성하는 것을 지원한다.

일단 내가 만든 아이콘 디자인은 이렇다.

심플!

이제 배경/근경을 나누어서 입력해준다. 배경과 근경은 서로 겹쳐지면서 하나의 아이콘으로 작동하게 된다.

3. Resolution and Presentation 설정.

여기서 중요한 설정은 Orientation 설정이다. 이 앱이 가로모드/세로모드중 어떤 것을 지원하는지 설정할수 있다.

난 세로 모드만 지원할 예정이기 때문에 Portrait로 설정했다.

 

4. Identification 설정

Other Setting > Identification 설정에서는 굉장히 중요한 설정들을 처리해 주어야 한다.

가장 중요한 Package Name은 우리 앱의 고유 식별자로 작동한다.

한마디로 이 놈은 세상에 유일무이한 우리 앱만의 고유 이름이라는 것.

대게 회사명.앱이름의 형태로 구성되는데, 이것이 맘에 들지 않다면, Override Default Package Name을 체크하고 이름을 바꿔 써주면 된다.

Bundle Version Code는 구글 개발자 콘솔에 앱을 등록할 때 각 번들의 버전을 구분하기 위해 사용된다. 

즉 개발자 콘솔에 앱을 등록할 때마다 Bundle Version Code가 바꿔주어야 한다는 말이다.

Minimum API Level , Target API Level 은 해당 앱이 설치될 수 있는 안드로이드의 버젼을 지정하기 위해 사용된다.

현재의 지침은 위 스크린샷과 같지만, 이 방침이 계속 바뀌기 때문에 방침에 맞추어 내용을 바꿔 주어야 한다.

Scripting Backend 는 무조건 ILCPP 로 설정하자.

현재의 구글 방침에 따라 모든 앱들은 ARM64를 지원해야만 하는데, 이 설정을 써야만 ARM64를 지원할 수 있기 때문이다.

ARM64까지 체크를 해주면 이 부분은 완성이다.

 

5. 키스토어 설정

자. 이제 키스토어Keystore를 설정하자.

키스토어란 '개발자 서명'을 뜻하는 것이다. 내가 이 앱의 원 개발자라는 것을 인증하는 열쇠라고 보면 된다.

이 열쇠가 있어야만 앱을 업데이트할 수 있고, 다른 사람이 내 앱을 변조하여 올리는 것을 막을 수 있다.

그래서 구글에 앱을 올리려면 당연히 키스토어를 등록해야만 한다.

다행스럽게도 Unity3D 안에 키스토어를 간단히 생성할 수 있는 툴이 내장되어 있다.

일단 Keystore Manager버튼을 누르자.

Create New를 눌러서 새로운 키스토어를 생성한다.

(키스토어를 잃어버리면 앱을 업데이트할 수 없기 때문에 반드시 잃어버리지 않을 장소를 선택하여야 한다.)

그 다음 4개의 패스워드를 같은 것으로 입력해 준다.

Alias는 이 키스토어의 이름이라고 생각하면 된다. 그냥 아무것이나 입력해도 상관없으니 쉬운 단어로 입력해주자.

Add key를 누르면 키스토어가 생성된다.

 

자. 여기까지 했으면 키 스토어가 생성된 것을 확인할 수 있다.

Password가 자동으로 기입되어있는데, Unity3d를 껐다가 키면 이 부분이 공란으로 바뀌기 때문에  다시 입력해 주어야만 정상적으로 빌드할수 있다.

(그러니 절대로 암호를 잃어버리지 말자!!!)

 

6. 구글 플레이 SDK 설치

이제 구글 플레이용 SDK를 설치하자. 

https://github.com/playgameservices/play-games-plugin-for-unity

 

GitHub - playgameservices/play-games-plugin-for-unity: Google Play Games plugin for Unity

Google Play Games plugin for Unity. Contribute to playgameservices/play-games-plugin-for-unity development by creating an account on GitHub.

github.com

이 링크를 타고 가면 최신 SDK를 확인할수 있다. 화면 우측의 Release를 눌러서 다운로드 페이지로 이동한다.

 

해당 페이지에서 Source code(zip)을 누르면 SDK 를 다운로드 받을 수 있다.

다운로드 받은 파일의 압축을 풀어보자.

current-build폴더에 .unitypackage 파일을 찾을 수 있다. 이 파일을 Unity3D에서 임포트 해보자.

패키지 파일을 드래그하여 Project 윈도우에 넣으면 된다.

그러면 Import Unity Package 창이 나올것이다. Import를 누르면 SDK 가 설치된다.

중간에 이런 메세지가 나오면, Enable을 누른다.

Resolving이 자동으로 진행되면서 필요한 파일을 자동으로 로딩하는 것을 볼수 있다.

원래 이 부분에서 문제가 생긴적이 없는데, 갑자기 conflict 가 발생했다.

어라?

원인을 찾아보니 특정 파일의 패스 지정이 잘못된 것 같다.

Assets/GooglePlayGames/com.google.play.games/Editor/GooglePlayGamesPluginDependencies.xml 문서를 열어보자.

   <repository>Packages/com.google.play.games/Editor/m2repository</repository>
   
   ///Path가 잘못되어있다. 아래처럼 수정해준다.
   
  <repository>Assets/GooglePlayGames/com.google.play.games/Editor/m2repository</repository>

이렇게 수정해주고, Assets > External Dependency Manager > Android Resolver > Force Resolve 를 실행해준다.

만약 아무런 응답이 없다면, Unity에디터를 껐다가 켠 후에 시도해 보길 바란다.

다행히  Resolve가 정상적으로 진행되는 것 확인할 수 있었다.

으아.. 벌써 지친다.

힘내서 계속 해보자.

 

7. 빌드하기

빌드 세팅을 열러서 Build App Bundle을 체크해 준다.

이렇게 하면 aab 형식으로 빌드파일을 만들어준다.

(이 항목을 체크하지 않으면 apk 형식으로 빌드 된다. 이 파일은 모바일폰에 바로 설치할수는 있지만 구글 개발자 콘솔에 등록하는 것은 불가능하다.)

 

처음 빌드를 하면 굉장히 시간이 오래 걸리니 중간에 설거지라도 하면서 여유를 가지고 기다리자.

 

휴! 겨우 빌드가 완료 되었다.

이제 이놈을 등록하고 나머지 절차를 계속 진행하면 된다.

 

8. 구글 플레이에 앱 만들기

이 작업을 하려면 먼저 구글플레이에 개발자 계정을 가지고 있어야 한다.

난 이미 가지고 있는 계정이 있기 때문에 그것을 쓸 것이다.

새로 만들어야 한다면 25$정도를 구글에 내면 개발자 계정을 생성할 수 있다.

한번 만들면 계속 쓸 수 있으니, 뭔가 출시할 계획이 있으면 미리미리 만들어 두어도 나쁘지 않을 것이다.

 

일단 개발자 계정이 있다면, 개발자 콘솔로 들어가자.

앱만들기

모든 앱 >앱 만들기를 이용해 새로운 앱을 생성한다.

앱 이름과 기타 정보를 입력하고 앱 만들기를 눌러서 앱을 생성한다.

 

9. 앱 등록하기

내부 테스트를 이용하여 앱을 등록하자.

테스트 > 내부 테스트 를 선택하고 새 버전 만들기를 선택하여 아까 만들었던 aab 파일을 올려준다.

업로드 기능이 꺼져있다면, 앱 무결성 문제를 먼저 설정해야 한다. 

앱 무결성 > 서명키 선택 을 선택한다.

서명키 선택 > 다른 키 사용 선택

앱 서명 환결설정 > Google에서 앱 서명 키를 관리 및 보호하도록 허용(권장)을 선택하고 저장한다.

이제 잠시 기다리면  업로드 기능이 활성화된다.

업로드를 누르고 아까 만든 번들 파일을 올리자.

올리기가 완료되면 다음을 눌러준다.

경고가 여럿 뜨는데 지금은 무시하고 저장을 누르자.

테스터를 지정하면 이제 폰에서 앱을 시험해 볼수있다.

테스터 항목에서 테스터의 계정을 등록해준다.

링크복사를 누르면 테스트에 참여할수 있는 URL을 얻을 수 있다.

테스트 하고 싶은 폰에서 테스트 계정으로 로그인하고 웹 브라우저에서 URL를 입력하면 된다.

 

10. Play 게임 서비스 설정

Play 게임즈 서비스 > 설정 및 관리 > 설정 을 선택해 준다.

새 Play 게임즈 서비스 프로젝트 만들기 를 선택하고 새 클라우드 프로젝트 만들기를 누른다.

그러면 친절하게 방법을 순서대로 표시해준다. 그대로 진행해 주면 된다.

Google Cloud 콘솔을 선택하고, 새로운 프로젝트를 생성한다. 

만들기를 해주고, 구글 플레이 콘솔로 다시 돌아온다.

클라우드 프로젝트 새로고침을 누르면 방금 만든 프로젝트가 리스트에 뜨는 걸 확인할 수 있다. 

선택하고 사용을 선택하자.

다음 단계로 넘어왔다.

이제 인증 정보를 추가해야 한다.

사용자 인증 정보 > 설정 을 누른다.

 

그러면 이런 내용이 출력된다. 

지시 내용을 그대로 따르면 된다.

Google Cloud Platform 을 눌러서 다음 화면으로 이동한다.

User Type외부로 설정하고 만들기를 누른다.

 

앱 정보를 입력한다. 

필수적으로 입력해야 할 내용은 앱이름, 사용자 지원 이메일, 개발자 연락처 정보다.

앱 이름은 Play Console의 이름과 동일해야 하니 주의하자.

다 입력했으면 저장 후 계속을 누른다.

 

이제 다시 Play Console 화면으로 되돌아 간다.

OAuth 동의 화면 구성 창을 닫고, 사용자 인증정보 > 새로고침 을 누른다.

이제 인증정보를 넣을 수 있는 창이 열린다.

 

11. 게임 서버 인증 정보 만들기

 

먼저 게임 서버 사용자 인증 정보를 만든다.

사용자 인증 정보 > 사용자 인증 정보 추가를 누른다.

유형을 게임서버 로 설정하고, 이름은 Play Store의 앱이름과 일치되도록 입력한다.

그리고 인증 > OAuth 클라이언트 만들기를 누른다.

만드는 방법을 알려주는 친절한 지시문이 나온다. 

역시 이대로 따라서 진행해 보자.

OAuth 클라이언트 ID 만들기를 누른다.

애플리케이션 유형 선택지에서 웹 애플리케이션을 선택한다.

이름은 Play Console과 같은 이름으로 입력해 준다.

다 했으면 만들기를 눌러서 넘어간다.

다시 Play Console화면으로 넘어가 인증 > OAuth 클라이언트 새로고침을 눌러준다.

 

이제 OAuth 클라이언트에서 방금 만든 인증정보를 볼 수 있다.

선택해주고, 변경사항 저장 을 눌러주자.

전 단계로 돌아가서 사용자 인증 정보를 확인하면, 게임서버 인증정보가 등록된 것을 확인할 수 있다.

12. 사용자 인증 정보 만들기

아.. 길다. 아직도 할 일이 남았다.

이제 사용자 인증정보를 만들 차례다.

사용자 인증정보> 사용자 인증 정보 추가를 눌러주자.

유형을 Android로 설정하고 이름을 입력한다.

OAuth클라이언트 만들기를 눌러준다.

이번에도 친절하게 만드는 방법이 출력된다. 역시 방법대로 진행해 보자.

애플리케이션 유형을 Android로 지정한다.

나머지 내용들을 앞서 보았던 대로 입력해 준다.

다 했으면, 만들기를 누른다.

다시 Play Console화면으로 넘어가 인증 > OAuth 클라이언트 새로고침을 눌러준다. 그리고 방금 만든 인증정보를 선택해준다. 

이제 변경사항 저장을 눌러주면 클라이언트 인증 정보가 등록된다.

 

13. 업로드용 사용자 인증정보 등록

이제 테스트용으로 사용할수 있는 인증서를 하나더 등록한다.

먼저 출시 > 설정 > 앱 서명 메뉴로 이동한다.

업로드 키 인증서를 확인할 수 있다. 

여기서 필요한 내용은 SHA-1인증서 지문이다. 이 부분을 복사하여 메모장 같은 곳에 저장해 놓자.

다시 성장 > Play 게임즈 서비스 > 설정 및 관리 > 설정 메뉴로 이동한다.

또 만들어야 하다니..

사용자 인증 정보> 사용자 인증 정보 추가를 누른다.

Cloud Platform으로 넘어가 아까와 같은 순서로 진행한다.

대신 SHA-1 을 방금 복사한 내용으로 써넣으면 된다.

다시 Play Console화면으로 넘어가 인증 > OAuth 클라이언트 새로고침을 눌러준다. 그리고 방금 만든 인증정보를 선택해준다. 

이제 변경사항 저장을 눌러주면 클라이언트 인증 정보가 등록된다.

 

모든 내용이 제대로 입력되었으면, 위 화면처럼 3개의 인증정보가 등록된 것을 확인할 수 있다.

 

14. 앱 개시

다시 클라우드 플랫폼으로 이동한다.

OAuth 동의 화면을 누른 후, 엡 게시를 눌러준다.

 

15. 리소스 정보 등록하기

이제 다시  Play Console로 넘어온다. (왔다 갔다 많이도 한다...)

사용자 인증정보>리소스 보기를 클릭한다.

XML로 된 리소스 정보를 확인할 수 있다.

이 내용을 복사해 놓는다.

 

이제 Unity 에디터를 연다.

Window > Google Play Games > Setup > Android Setup 으로 들어간다.

빈 공간에 아까 복사해둔 내용을 붙여 넣는다.

이제 Web App Client ID가 필요한데 이걸 얻으려면 다시 Cloud Platform으로 돌아가야한다.

사용자 인증 정보 에서 웹 애플리케이션클라이언트 ID를 복사한다.

이 내용을 Client ID에 붙여넣는다.

이제 Setup 버튼을 누르면, 셋팅이 완료된 것이다.

 

정말 길었다.

정작 설정하는 작업 자체보다는, 이렇게 일일이 기록하는 게 시간이 엄청 걸리는 구나...

 

'Game Make' 카테고리의 다른 글

Block Puzzle 만들기 (9)  (0) 2023.10.22
Block Puzzle 만들기 (8)  (0) 2023.10.18
Block Puzzle 만들기 (6)  (0) 2023.10.14
Block Puzzle 만들기 (5)  (0) 2023.10.11
Block Puzzle 만들기 (4)  (0) 2023.10.08