구글 플레이 게임즈 유니티 플러그인을 이용하여 게임을 만드려했습니다.
그에 앞서 유니티 프로젝트 셋팅 ( 플러그인 임포팅 ), 샘플 앱, 각 기능 스크립트를 분석 및 파악 하고자
샘플 프로젝트를 실행하려 했습니다.
근데 샘플앱 실행하는것 조차, 별의별 에러 때문에 진행속도가 굉장히 더뎠습니다.
ClassNotFoundException : com.google.games.bridge.TokenFragment
Starting Auth Transition. Op: SIGN_IN status: ERROR_NOT_AUTHORIZED 등등
그래서 프로젝트에 플러그인 임포팅, 샘플 앱 빌드하는 과정을 적어봤습니다.
잘못된 부분 및 질문 코멘트 남겨주시면 성심껏 답변 하겠습니다!
[버전정보 / Verstion Information]
Unity 2018.3.11f1 /
play-games-plugin-for-unity / v0.9.64
unity-jar-resolver / v1.2.105.0
1. 유니티 빌드 셋팅 / Unity Build Settings
A.빌드 셋팅 / Build Settings
A.Build System : Gradle
B.Build App Bundle : Enable
B. PlayerSettings
a.Other Settings >Configuration :
- Scripting Backend : IL2CPP
- Scripting Runtime Version : .NET 4.x Equiva
- Target Architectures : ARMv7, ARM64,x86 : enable
b. Resolution and Presentation > Orientation
- Default Orientation > Landscape Left
2. "GooglePlayGamesPlugin" 프로젝트로 불러오기 / Importing the Google Play Games Plugin Pakcage File
A. playGames Plug in 다운로드 / Download
> 필자는 아래 링크에 프로젝트 용량이 약1.7기가 정도 되니 필요한 것만 다운로드
> current-build 경로로 이동하여 unity package file 다운로드
(2019년 09월 13일 기준 최신버전 v0.9.64)
https://github.com/playgameservices/play-games-plugin-for-unity
B. PlayGame 플러그인 불러오기 / Import playGame Plug in
>Import Package > Custom Package.. > 다운받은 unity package file
*Android Dependency가 Resolving 될 때 에러 발생하는지 체크.
(정보 1)
*이 때, 같이 딸려오는(?) Google Player Services Resolver v1.2.105.0 이다.
과거 Resovler 버전과 관련한 이슈가 있었지만 현재는 발견되지 않았으니 패스해도 무관.
https://github.com/googlesamples/unity-jar-resolver/issues/208
(필수 아님)
* 최신버전을 쓰고 싶다면...
2019년 9월 13일 기준 : v1.2.124
playGames Plugin에 딸려오는 v1.2.105.0 써도 무관.
https://github.com/googlesamples/unity-jar-resolver
3. "Play Games 샘플 씬 " 불러오기
A.샘플 씬 다운로드
>플러그인 가이드 내용 중, 샘플 씬을 참조하면 빠르게 파악이 가능하다함.
>아래 링크에서 "/samples/" 경로로 이동하여, "CubicPliot"를 다운로드한다.
https://github.com/playgameservices/play-games-plugin-for-unity
B.샘플 씬 불러오기
>Import Package > Custom Package.. > 다운받은 Sample Scene
4."Google Play Console"에서 "애플리케이션" 생성
일반적으로 진행하는 스토어 정보, 앱 버전 ( apk 업로드 ) 등등 정보들을 입력하여 "출시 준비" 상태로 만든다.
5."Google Play Console"에서 게임서비스를 추가
4번 항목과 같이 생성 및 게임 세부정보, 연결된 앱 등 과정을 진행한다.
6."Google 클라우드 플랫폼"에서 사용자 인증정보 생성하기
A. Google 클라우드 플랫폼으로 이동 및 사용자 인증 메뉴
4,5번 항목을 진행했다면
아래 웹페이지에 해당 프로젝트 항목이 생성되어 있음.
https://console.developers.google.com/apis/dashboard?project=secondgood-97015515&hl=ko
"해당 프로젝트 선택" >>> "API 및 서비스" >>> "사용자 인증정보"으로 이동하면
OAuth 2.0 클라언트 인증정보 1개가 존재 할 것 인데,
이것은 "앱 서명 인증서" 이다.
B. OAuth 클라이언트 ID ( 안드로이드) 사용자 인증 정보 만들기
a.업로드 인증서
앱에서 Play Games로그인을 정상적으로 처리하기 위해 필요한 것은
"업로드 인증서 지문" 해시값으로 만든 "인증 정보"이다.
b. 인증서 생성
"사용자 인증 정보 만들기" >>>> " OAuth 클라이언트 ID " >> "Android"로 이동.
- 서명 인증서 지문 :
Google Play Console >>> 해당 애플리케이션 >>> 앱 서명 >>> 업로드 인증서 >>> "SHA-1 인증서 지문"을 복사하여 "SHA1" 문자열을 제거하고 붙혀넣는다.
-패키지 이름 : 유니티 안드로이드 패키지명
C.OAuth 클라이언트 ID ( 웹 ) 인증서 생성
- "사용자 인증 정보 만들기" >>>> " OAuth 클라이언트 ID " >> "웹 어플리케이션"로 이동.
- 유니티 프로젝트 내에 입력한 정보이니 생성 후 Client ID를 복사해둔다.
7. 유니티 프로젝트 내에 "Google Play Games" Set Up 설정
A. Google Play Games 설정값 메뉴
Unity Editor > Window > Google Play Games > Setup > Android Configuration
B. Property 입력
a. Resource Definition :
Google Console >>> Game Service >>>"리더보드 and 업적" 생성 >>>리더보드, 업적 둘중에 아무거나 선택하여 리소스 받기 >>> Android 항목 복사하여 붙혀넣기
** 게임 변경사항이 발생 하였으니, 게임 재출시 必
b. Web App Client ID ( Optional ) :
6."Google 클라우드 플랫폼"에서 사용자 인증정보 생성하기
B. OAuth 클라이언트 ID ( 안드로이드) 사용자 인증 정보 만들기
C.OAuth 클라이언트 ID ( 웹 ) 인증서 생성 에서 생성한 Client ID 복사 붙혀넣기
8.앱 빌드 후 확인
Scene In Build 목록에
1_MenuScene
2_GameplayScene
3_FinaleScene 씬을 차례대로 추가합니다.
다음 글에서는 각 기능 ( 로그인 등 )에 대한 스크립트을 분석하려 합니다.
I will see the script(login...or anything. ).I'll see how the features work in the next article.
+ 2020-04-08
- 구글 플레이 콘솔, 앱 내부테스트 배포 오류
> 아래 오류 캡처
> 해결방안, 안드로이드 공식홈
https://developer.android.com/distribute/best-practices/develop/64-bit
+ 2020-04-08
[GPGS 로그인 안됨]
> 구글 플레이 콘솔 -> 게임 서비스 -> 게임 세부 정보 -> 저장된 게임 사용 -> 게임 출시
+2020-04-12
[게임서비스 앱 출시 후에 GPGS 로그인 안됨]
* 원인 : 명확하지 않음
* 조치 : 구글 콘솔앱과 연결된 구글 Apis 프로젝트의 SHA-1 인증서 디지털 지문 변경
기존 "업로드 인증서"에서 "앱 서명 인증서"로 변경
1. 구글 콘솔 > 해당앱 > 출시관리 > 앱서명 > 앱 서명 인증서 > SHA1지문을 복사
2. 구글 APIs > 앱과 연결된 프로젝트 > API 및 서비스 > 사용자 인증 정보 > OAuth2.0 클라이언트 ID > 안드로이드 클라이언트 > 수정 > SHA-1 인증서 디지털 지문 > 복사한 SHA-1값 으로 변경 > 저장