[Firebase] Unity로 빌드한 게임 사용자 통계

이준영·2026년 1월 13일

저번에 면접을 하나 보게 되었는데, 외부 SDK 연결한 경험에 대해서 여쭤보아서 연습해보기 위해서 Firebase를 사용해보게 되었다.

Firebase

Firebase : "개발자가 서버(Back-end)를 직접 구축하지 않아도 앱/게임에 필요한 핵심 기능을 바로 쓸 수 있게 해주는 구글의 서비스 모음집"

주요 기능

  1. 데이터 저장 및 관리 (Database)
  • 역할: 유저의 점수, 아이템 목록, 설정값 등을 온라인에 저장합니다.

  • 장점: 내가 DB 서버를 사고 언어를 배워서 구축할 필요가 없습니다. 그냥 SDK 함수 하나로 데이터를 넣고 뺄 수 있습니다.

  1. 사용자 인증 (Authentication)
  • 역할: 구글 로그인, 페이스북 로그인, 이메일 가입 등을 구현합니다.

  • 장점: 복잡한 보안 인증 과정을 거치지 않고도 클릭 몇 번으로 "내 게임에 구글 로그인 붙이기"가 가능해집니다.

  1. 분석 및 로그 (Analytics)
  • 역할: 유저가 게임을 얼마나 하는지, 어디서 죽는지, 어떤 아이템을 많이 사는지 통계를 봅니다.

  • 장점: 구글 웹사이트에서 그래프로 내 게임의 현황을 한눈에 볼 수 있습니다.

  1. 오류 보고 (Crashlytics)
  • 역할: 내 게임이 유저 폰에서 튕겼을 때, "어느 코드 몇 번째 줄에서 에러가 났는지"를 나에게 보고해 줍니다.

  • 장점: 내가 옆에 없어도 전 세계 유저들의 버그 리포트를 자동으로 수집합니다.


오늘은 이것 중 분석 및 로그 기능을 정리해보려고 한다.

선정 이유

외부 SDK 연동에 대해 알고 있는게 아무것도 없어서 Gemini에게 물어봤다.

그러니 학습 순서와 추천 SDK를 알려주었다.

단계학습 내용비고
1단계.unitypackage 임포트 및 초기화SDK 문서의 Initialize() 함수 호출 방법 숙지
2단계EDM4U 개념 파악Force Resolve 사용법 및 빌드 에러 해결 능력
3단계AndroidManifest & Info.plist 수정권한(Permissions) 및 딥링크 설정 방법
4단계C# <-> Native 통신 (Bridge)UnitySendMessage 및 네이티브 호출 API 학습

1단계 중 3가지를 알려주었다.

Firebase (Google)

학습 포인트: .unitypackage 설치 및 Firebase 콘솔 연결 (google-services.json 설정)

  • EDM4U를 이용한 Android/iOS 종속성 해결 과정

  • 비동기 프로그래밍 (Task, Coroutine) 기반의 SDK 호출 방식

장점: 문서화가 매우 잘 되어 있고, 무료로 시작할 수 있음.

Facebook SDK for Unity

학습 포인트:

  • 유니티 에디터 내의 전용 설정 메뉴 활용

  • Android: AndroidManifest.xml에 앱 아이디 등록

  • iOS: Xcode 프로젝트 설정 자동화 및 프레임워크 추가

장점: 빌드 후 실행 시 네이티브 팝업이 뜨는 과정을 눈으로 직접 확인할 수 있음.

GitHub의 오픈소스 C# Wrapper (고급 연습용)

학습 포인트:

  • AndroidJavaObject를 이용한 Java 클래스 호출

  • DllImport("__Internal")를 이용한 iOS C-Bridge 이해

추천 검색어: GitHub에서 Unity Native Gallery 또는 Unity Native Share를 검색 (기기 갤러리에 접근하거나 공유 창을 띄우는 가벼운 SDK)


난 가난한 취준생이기 때문에 무료라는 문구를 피할 수 없었다. 사실 그거 아니어도 유니티 개발자라면 반드시 거쳐가는 관문이라는 말도 있었다.

시작하기

  • Firebase를 하면서 가장 놀라웠던 점이 가이드가 정말 잘 되어 있던 점이었다.
  1. Firebase 콘솔 창에 접속하여 새 프로젝트 프로젝트 만들기
프로젝트 만들기
  • 프로젝트 명 말곤 머 설정할게 없다.
  1. 프로젝트 메인 화면에서 Unity 아이콘을 클릭하여 앱 등록
앱 등록
  • 난 갤럭시 S8을 사용하고 있어서 안드로이드를 체크했다.
  • 패키지 이름은 Project Settings > Player에서 확인 가능하다.
패키지 이름 확인
  • 위에 적혀있는 것을 토대로 설정하면 된다.
앱 등록
  • 난 분석 기능을 연습할 것이기 때문에 "FirebaseAnalytics.unitypackage"를 가져왔다.
패키지 임포트 후, 뜨는 팝업 1
  • 대충 구글에 플러그인 사용 정보를 공유해서 제품 개선에 도움을 줄래?라는 물음. 암거나 선택
패키지 임포트 후, 뜨는 팝업 2
  • External Dependency Manager가 라이브러리 충돌을 자동으로 해결해 줄지 묻는 것

  • Enable을 선택하면 나중에 안드로이드 빌드할 때 복잡한 라이브러리 파일들을 유니티가 알아서 관리해 줌.

설치 확인

Unity에서 Window -> Firebase -> Documentation가 생겼으면 잘 설치된 것.

Firebase 문서

테스트 코드 작성

테스트 코드 작성
  • 주석 보면 알겠지만 Gemini 형님이 짜주셨다.

  • 이것도 나중에 더 공부해야겠다.

  • "앱이 켜지자마자 Firebase가 잘 작동하는지 확인하고, 통계 서버에 '앱 열림'과 '테스트 성공'알리는 코드"

빌드

  • 빌드 하면서 대충 2일을 태워먹었지만, 여기서 정리하기는 힘들어서 다른 글로 정리하기로 했다.(버그 목록은 맨 밑에)

  • 일단 간단한 Firebase 빌드는 SDK가 34버전 이어서 그것만 맞춰주면 된다.

  • 만약 내가 사용하는 Unity버전이 낮아서 SDK 32버전으로 빌드 하고 있다면, 버전을 바꿔줘야 한다.

  1. 안드로이드 SDK 34버전 다운 받기
안드로이드 SDK 34버전 다운 받기
  1. Target API 설정

Edit -> Project Setting -> Player -> Other Setting에 사진과 같은 옵션이 있다.

Target API 설정
  • 여기서 Target API Level을 34로 설정하면 된다.
  1. gradleTemplate.properties 설정
  • 위에서 유니티 패키지를 임포트 하게 되면, Plugins\Android\gradleTemplate.properties라는 파일이 생겨있다. 만약 없다면

파일이 없을 때

Edit -> Project Setting -> Player -> Publishing Setting -> Custom Gradle Properties Template를 체크하면

Assets 폴더 안에 Plugins\Android\gradleTemplate.properties라는 파일이 생긴다.

gradleTemplate.properties 설정

파일이 있을 때

gradleTemplate.properties에 android.suppressUnsupportedCompileSdk=34를 추가해 주면 된다.

gradleTemplate.properties
  • 해당 코드를 추가하면, API 34 버전으로 빌드를 허용한다는 뜻이다.

  • 모든 설정 후, 빌드를 해보면 된다.

테스트

폰 화면
  • 아 화면 비율 맞추는 건 언제 배우지..
Firebase 콘솔 창
  • 대충 게임을 켜면, 이렇게 집계가 되지만 이 화면은 실시간 갱신은 아니다.
Realtime Analytics
  • 왼쪽 애널리틱스 누르고, Realtime Analytics를 누르면 실시간 분석을 따로 해준다.
DebugView
  • 위 작성한 테스트 코드를 보면 FirebaseAnalytics.LogEvent() 코드가 있는데, 해당 코드는 여기서 확인 할 수 있다.

  • 다만 조금 준비가 필요하다.

DebugView 사용하기

  1. 휴대폰 개발자 모드 설정

휴대폰 설정 -> 휴대전화 정보 -> 소프트웨어 정보 -> 빌드 번호 연타하기

이렇게 하면 개발자 모드가 활성화 된다.

휴대폰 설정 -> 개발자 옵션 -> USB 디버깅 옵션을 켜준다.

그리고 컴퓨터와 연결.

모든 테스트가 끝난 후, 개발자 옵션을 종료 해주는게 좋다. 보안 문제 있음.

물론 내 폰은 보안 업데이트가 21년도 이후로 된 적이 없다.

  1. 명령어 입력하기

cmd창에서 안드로이드 SDK의 명령어를 입력해 줘야한다.

환경변수를 등록해 두면 편하지만, 환경변수를 등록하려면 결국 경로를 알아야하기 때문에 경로를 파악해야한다.

  • 유니티 허브로 다운 받은 경우 : C:\Program Files\Unity\Hub\Editor[에디터버전]\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools

더럽게 기네

난 C:\tool\SDK\platform-tools에 설치되어 있기 때문에 편하다.

이제 cmd를 켜서

adb shell setprop debug.firebase.analytics.app {패키지 네임}를 입력하면 된다.

cmd
  1. 게임 실행 후 로그 확인
확인
  • LogEvent()에 적어둔 "test_event_success" 문장을 확인할 수 있다.
  1. 종료 코드

adb shell setprop debug.firebase.analytics.app .none. 를 cmd창에 입력하면 분석 종료.

cmd

오류 목록

난 해당 프로젝트를 Jenkins로 빌드할 수 있게 해놨기 때문에 Jenkins로 빌드하면서 생긴 버그는 다른 글에서 정리하기로 하였다.

  1. sdk 34버전으로 강제 변경 (해당 글에서 다룸)

  2. Github 파일 크기 문제

  3. 1.2tls 문제

  4. 경로 길이 문제

profile
게임 개발자가 되기 위해서 공부하는 중입니다.

0개의 댓글