유니티 gpgs 구글서비스 이용하기

JHO·2025년 7월 22일

유니티 2D

목록 보기
11/12

1. 유니티 세팅


1-1. 안드로이드 빌드 세팅 및 키세팅

  • TargetAPILEvel은 gpgs 구글 현 정책상 35이상을 사용해야함.
  • 사진은 33으로 되었지만 추후에 수정함.
  • Key 생성하여 Password 입력.
    -> password은 잊어버리면 곤란하므로 꼭 기록해놓기!
    -> 프로젝트를 나가면, 패스워드는 사라지므로 다시 재입력 필요.

1-2. GPGS 에셋 적용

  • 11버전 이상은 로그아웃 기능 제공 x 및 자동 로그인.
  • 로그아웃기능을 고려하여 10버전 다운.
  • 압축을 풀고, CurrentBuild 경로에서 해당 Unity패키지를 프로젝트에 추가.
  • Enable 선택
    -> 만약, 오류가 걸린다면 해결 방법
  • OtherSettings - COnfiguration에서 Http관련 Always allowed로 변경.
  • publishing settings에서 Custom Main Gradle Template, Custom Gradle Properties Template을 True로 변경.
    • 참고: https://meta-jun.tistory.com/253
      -> 그럼에도 불구하고 Unity6와 gpgs10.14버전 호환 문제로 enable과 build 둘 중 하나가 안되는 문제로 Unity6에서 22.3.62f1버전으로 내려 해결.
      -> 현재는, GPGS와 구글플레이콘솔 정책 문제로, GPGS를 2.1.0으로 올림.
      유니티 22.3.62f1와 GPGS 2.1.0 사용중.
      (현재 상태)
  • 성공적으로 완료했다면, Force Resolve 다시 재수행.

1-3. 안드로이드 빌드 수행 및 구글 콘솔앱 등록

  • 씬 등록 및 Build App Buindle(Google Play) True 설정.
  • 빌드 완료 시, 아직 구글서비스 등록을 안했기에 무시하고 OK선택.
  • 구글 플레이 콘솔에서 내부 테스트를 선택하고 테스터선택하여 등록.
  • 내부 테스트 - 새버전 만들기 - 서명키 선택 - Google에서 생성한 키 사용 클릭.
  • 그럼 다음과 같이 앱번들 업로드가 가능하고, 빌드한 앱번들을 업로드.
  • 새버전 출시하기 에서 빌드한 abb파일을 올렸으나, 현기준 api 35이상 Target을 해야하므로 유니티 프로젝트 세팅에서 35로 변경.
  • 재업로드 시 버전코드 문제가 발생하면, 버전 코드를 수정해서 업로드.
  • 경고는 무시해주고 저장 및 출시 클릭.
  • 정상적으로 완료되면 위와 같은 모습을 보임.

1-4. OAuth 체크 인증서 등록

  • 사용자 늘리기 - Play 게임즈 서비스 - 설정 및 관리 - 새 Play 게임즈 서비스 프로젝트 만들기 클릭.
  • 위 사진과 같이 Google Cloud 콘솔로 들어가 프로젝트를 생성하고, 새로고침 후 클라우드 프로젝트에 만든것을 적용하고 사용 클릭.
  • Google Cloud Platform에서 보기 선택.
  • 위 정보들 입력. 대상은 외부로 체크.
  • OAuth 동의 화면 선택.
  • 선택 후 과정을 따라 입력하여 이 화면이 나오면 완성.
  • 다시 Google Play Console 설정으로 돌아와 새로 고침 클릭.
  • 사용자 인증 정보 추가 클릭.
  • 유형은 게임 서버로 설정.
  • 인증은 만들어둔 것이 없기에 생성필요.
  • 방금전 googlePlatform에서 사용자 인증 정보에 들어가 사용자 인증 정보 만들기에서 OAuth클라이언트ID 선택.
  • 유형을 웹애플리케이션으로 바꿔주고 만들기.
  • 확인 버튼 클릭.
  • 다시 인증으로 돌아와 OAuth클라이언트 새로고침 클릭.
  • 만들어 놓은 OAuth 선택 후 변경사항 저장.
  • 사용자 인증정보 다시 돌아오면, 게임서버에 추가 된것이 확인 가능.
  • 안드로이드도 똑같이 추가 필요.
  • 사용자 인증 정보 추가를 선택 후 이번에는 유형을 Android로 설정.
  • OAuth 클라이언트 만들기 클릭.
  • 이 상태로 방금과 동일하게 OAuth 클라이언트 ID 만들기.
  • 지문은 SHA-1 쪽에 작성, 패키지이름을 동일하게 작성 후 만들기 선택.
  • 생성 완료 시 확인.
  • 새로 고침 후, 방금 만든 클라이언트 설 정 후 변경사항 저장.
  • 지금까지 해서 앱 서명 키 인증서 생성 완료.
  • 이제는 업로드 키 인증서 생성 필요.
  • 앱서명 설정 클릭.
  • SHa1 키 복사
  • 설정 - 사용자 인증정보 - 사용자 인증정보추가에서 Android로 하여 OAuth클라이언트 만들기 후 창 띄어놓기.
    -> 추후 패키지 이름 복사가 필요한 부분.
  • 구글 클라우드의 사용자 인증정보에서OAuth클라이언트ID만들기 선택.
  • Android 유형으로, 위에 복사해논 패키지이름과 Sha1 복붙.
  • 사용자 인증 정보 추가로 돌아가서 방금 전에 만든 OAuth 선택하고 OAuth클라이언트 만들기.
  • 완료된 상태.
  • 마지막으로, GoogleCloud - OAuth동의화면- 대상에서 프로덕션상태로 변경.

1-5. 유니티 Setup 및 프로젝트 게시

  • 사용자 인증 정보에서 리소스 보기 선택 후 리소스 내용 복사.
  • GoogleCloud - 클라이언트 - 웹클라이언트의 ID 복사.
  • Window - googlePlayGames - Setup - AndroidSetup 에서 위 사진과 같이 리소스내용과 ID 붙이고 Setup 선택.
  • 성공적으로 완료하면, 다시 Force Resolve
  • 프로젝트 게시하기를 눌러, 속성 오른쪽 화살표 클릭.
  • 차세대 ID 사용, 저장된 게임 사용으로 선택.
  • 카테고리랑 아이콘 이미지 임시로 추가. 추후에 수정 가능.
  • 다시 프로젝트 게시하기 누르고, 출시 - 게임 프로젝트 게시 클릭.
    서비스 설정에서 속성이 출시됨으로 변경되면 정상적으로 완료.

1-6. 앱 설정

  • 대시보드에서 개인정보처리방침 설정 선택
  • 구글에서 제공하는 블로그 생성 사이트 Blogger이용해서 간단히 만든 후 Url 복사해서 붙이기
  • 위의 앱 콘텐츠에 관한 정보 입력 모두 설정해주기.
  • 위와 같이 타겟층까지 설정.

2. 로그인 및 로그아웃 구현


2-1. 로그인 및 로그아웃 코드

  • 자동 로그인
  • 수동 로그인
  • 로그 아웃

3. 리더보드 및 업적 구현


3-1. Google Play Console 업적 및 리더보드 생성

  • Play 게임즈 서비스 - 업적- 업적만들기
  • 단계별 업적, 일반 업적 생성시 완료 모습
  • Play 게임즈 서비스- 리더보드 - 리더보드 생성
  • 숫자형식 리더보드, 기간형식 리더보드 생성 후 완료 모습
  • 검토 및 게시 - 출시를 클릭하게 되면, 그 후로 수정 불가능 하므로 주의!
  • 리소스 보기 - xml 복사.
  • 유니티 구글 플레이 게임즈 Setup 에서 Xml 새로운 것으로 복붙.
  • Play게임즈 서비스 테스터에 등록을 해놓아야 테스터계정으로 리더보드나 업적기능사용가능

3-2. 소스 코드

  • 리더보드 업데이트는 reportscore 호툴한시점에 되는거로 파악. 또한 불확정한 시점에 업데이트 됨

4. 저장불러오기(구글 클라우드)


4-1. 저장 설정

  • 저장된 사용 기능 필수로 설정필요.

4-2. 코드

  • Save기능을 사용하려면 EnableSavedGames를 설정하여 PlayGamePlatforms 초기화 필요.
  • 저장 기능
  • 로드 기능
  • 삭제 기능
  • 주의 사항
    • OpenWithAutomaticConflictResolution에서의 매개변수 Datasource.ReadNetworkOnly가 network가 연결되지않은상태에서도 Success로 반환하는 문제가 현재 존재.
      -> 이 경우 네트워크가 연결되어있지 않은 상태는 로컬에 저장하고 불러오는 듯함.
    • 네트워크가 연결되어있지 않은 상태에서 Data를 저장하는 경우, A기기와 B기기에서 같은 계정을 사용해도, Data를 Load할때 로컬 > 네트워크 순으로 하는 듯함. 따라서, 같은 계정임에도 불구하고 다른 Data상황을 나타냄.
      -> 해결방안으로 A기기와 B기기에서 같은 계정으로 로그인 후 Data구조를 똑같게 만들고 난 이후, 다시 네트워크에 따른 데이터 동기화가 적용됨.
    • 참고: https://github.com/playgameservices/play-games-plugin-for-unity/issues/2219
profile
개발노트

0개의 댓글