콘솔로 이동

Fabric Crashlytics에서 Firebase Crashlytics로 Unity 앱 마이그레이션

이 빠른 시작에서는 Firebase Console에서 모든 오류 보고서를 확인할 수 있도록 기존 Fabric Crashlytics Unity 앱을 Firebase Crashlytics로 마이그레이션하는 방법을 설명합니다.

시작하기 전에

다음 가이드에서는 Fabric에서 실행 중인 Unity 앱이 있다고 가정합니다. Fabric에 기존 Unity 앱이 없는 경우 Crashlytics를 처음 사용하는 사용자를 위한 시작하기 안내를 따르세요.

  1. Fabric에 로그인한 다음 마이그레이션 흐름으로 이동합니다.

  2. Signed into Google as(Google에 로그인한 계정) 필드에 Firebase 프로젝트와 연결된 Google 계정이 나열되어 있는지 확인합니다. 그렇지 않을 경우 Switch accounts(계정 전환)를 클릭하여 올바른 계정을 선택합니다.

  3. Get Started(시작하기)를 클릭한 다음 Start Linking(연결하기)을 클릭합니다.

  4. 왼쪽에 있는 Fabric 앱을 오른쪽에 있는 해당하는 Firebase 프로젝트로 드래그합니다.

    새 Firebase 프로젝트를 만들 수도 있습니다.

  5. Link 1 app to Firebase(Firebase에 앱 1개 연결)를 클릭합니다.

2단계: Fabric 삭제

Fabric은 장면에 GameObject를 추가하여 게임에서 Crashlytics뿐 아니라 SDK 자체의 추가 디렉터리도 초기화합니다.

Fabric Crashlytics와 Firebase Crashlytics 플러그인 사이에 충돌이 생기지 않도록 Unity 프로젝트에서 다음 Fabric 폴더와 파일을 삭제합니다.

  • Assets(애셋)에서 다음 파일을 삭제합니다.

    Assets/
       Editor Default Resources/
           FabricSettings.asset     <- DELETE
       Fabric/                      <- DELETE
       Plugins/
           Android/
               answers/             <- DELETE
               beta/                <- DELETE
               crashlytics/         <- DELETE
               crashlytics-wrapper/ <- DELETE
               fabric/              <- DELETE
               fabric-init/         <- DELETE
           iOS/
               Fabric/              <- DELETE
    
  • Hierarchy Window(계층 구조 창)에서 다음 GameObject를 삭제합니다.

    SampleScene
        Main Camera
        Directional Light
        Canvas
        EventSystem
        FabricInit                  <- DELETE
        CrashlyticsInit             <- DELETE
    
  • Assets(애셋) > Plugins(플러그인) > Android > AndroidManifest.xml에서 모든 Fabric 항목을 삭제합니다.

    예를 들어 알려진 삭제할 키는 다음과 같습니다. android:name="io.fabric.unity.android.FabricApplication"

    다른 Fabric 항목이 있으면 검색하여 삭제합니다.

3단계: Firebase 구성 파일 추가

  1. Firebase Console로 이동합니다.

  2. 프로젝트 개요 옆의 왼쪽 상단에서 settings를 클릭한 다음 프로젝트 설정을 선택합니다.

  3. 새로 연결된 앱의 경우 연결된 각 앱의 플랫폼별 Firebase 구성 파일을 다운로드합니다. 단일 Unity 프로젝트의 경우 구성 파일을 최대 2개 포함할 수 있습니다.

    • iOSGoogleService-Info.plist
    • Androidgoogle-services.json
  4. Unity 프로젝트에서 프로젝트 창을 열고 구성 파일을 Assets 폴더로 이동합니다.

4단계: Firebase Crashlytics SDK 추가

  1. Firebase Unity SDK를 다운로드한 다음, 원하는 위치에 SDK의 압축을 풉니다.

    Firebase Unity SDK는 플랫폼별로 제공되지 않습니다.

  2. 열어 둔 Unity 프로젝트에서 Assets(애셋) > Import Package(패키지 가져오기) > Custom Package(맞춤 패키지)로 이동합니다.

  3. 압축을 푼 SDK에서 Crashlytics SDK(FirebaseCrashlytics.unitypackage) 가져오기를 선택합니다.

    다른 지원되는 Firebase 제품도 가져올 수 있습니다.

  4. Unity 패키지 가져오기 창에서 가져오기를 클릭합니다.

5단계: Firebase Crashlytics 초기화

  1. 새 C# 스크립트를 만들어 장면의 GameObject에 추가합니다.

    1. 첫 번째 장면을 연 다음, 이름이 CrashlyticsInitializer인 빈 GameObject를 만듭니다.

    2. 새 객체의 Inspector(검사기)에서 Add Component(구성요소 추가)를 클릭합니다.

    3. CrashlyticsInit 스크립트를 선택하여 CrashlyticsInitializer 객체에 추가합니다.

  2. 스크립트의 Start 메소드에서 Crashlytics를 초기화합니다.

      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
    
      // Import Firebase
      using Firebase;
    
      public class CrashlyticsInit : MonoBehaviour {
          // Use this for initialization
          void Start () {
              // Initialize Firebase
              Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                  var dependencyStatus = task.Result;
                  if (dependencyStatus == Firebase.DependencyStatus.Available)
                  {
                      // Create and hold a reference to your FirebaseApp,
                      // where app is a Firebase.FirebaseApp property of your application class.
                      // Crashlytics will use the DefaultInstance, as well;
                      // this ensures that Crashlytics is initialized.
                      Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                      // Set a flag here for indicating that your project is ready to use Firebase.
                  }
                  else
                  {
                      UnityEngine.Debug.LogError(System.String.Format(
                        "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
                      // Firebase Unity SDK is not safe to use here.
                  }
              });
          }
    
        // Update is called once per frame
        void Update()
          // ...
      }

    SDK를 추가하고 초기화하면 Crashlytics는 자동으로 오류 보고서를 리슨하고 수집하기 시작합니다.

6단계: Fabric API 호출 바꾸기

고려해야 할 API 변경사항이 몇 가지 있습니다. 자세한 내용은 Unity API 변경사항 페이지를 참조하세요.

7단계: Fabric API 키 추가

앱이 이미 Fabric에 연결된 상태이므로 Firebase에 앱의 Fabric API 키를 제공해야 합니다. 이렇게 하면 오류 보고가 Firebase Crashlytics로 원활하게 전환되어 Firebase Crashlytics 대시보드에서 모든 이전 데이터를 볼 수 있습니다.

  1. Unity 프로젝트에서 Window(창) > Firebase > Crashlytics를 선택하여 Firebase Crashlytics를 엽니다.

  2. Fabric API Key(Fabric API 키) 아래에 Fabric API 키를 입력합니다.

  3. Save(저장)을 클릭합니다.

8단계: 프로젝트 빌드

프로젝트를 iOS 또는 Android로 내보낸 후 올바르게 내보냈는지 확인합니다.

프로젝트를 아래의 내보내기 구성 샘플과 비교한 후 파일이 누락된 것 같으면 Unity 편집기를 연 다음 Google Play 서비스 리졸버를 실행합니다.

iOS

Android

리졸버 실행(선택사항)

Google Play 서비스 리졸버는 Unity 프로젝트에 앱을 iOS 또는 Android로 내보내기 위한 적절한 종속 항목이 있는지 확인합니다.

리졸버에 대한 자세한 내용은 Unity Jar 리졸버의 README를 참조하세요.

iOS

iOS 리졸버는 자동으로 실행되고 Cocoapods를 활용하여 내보낸 Pods 디렉터리에 iOS 종속 항목을 넣습니다.

  • 머신에 CocoaPods를 다운로드하는 방법은 다음과 같습니다.

    • Assets(애셋) > Play Services Resolver(Play 서비스 리졸버) > iOS Resolver(iOS 리졸버) > Install Cocoapods(CocoaPods 설치)로 이동합니다.
  • Podfile 생성을 사용 설정하거나 중지하는 방법은 다음 안내를 따르세요(선택사항).

    • Assets(애셋) > Play Services Resolver(Play 서비스 리졸버) > iOS Resolver(iOS 리졸버) > Settings(설정)로 이동합니다.

    Android

    Android 리졸버는 자동으로 실행되고 gradle을 활용하여 Assets/Plugins/Android에 Android 종속 항목을 넣습니다.

  • 리졸버를 직접 실행하는 방법은 다음과 같습니다.

    • Assets(애셋) > Play Services Resolver(Play 서비스 리졸버) > Android Resolver(Android 리졸버) > Resolve(확인)로 이동합니다.
  • 자동 확인을 사용 설정하거나 중지하는 방법은 다음과 같습니다. 기본적으로 사용 설정되어 있습니다.

    • Assets(애셋) > Play Services Resolver(Play 서비스 리졸버) > Android Resolver(Android 리졸버) > Settings(설정)로 이동합니다.

다음 단계

  • 구현 테스트 - 강제 비정상 종료를 통해 Crashlytics 설정을 테스트하여 Firebase Console에 오류 보고서를 생성합니다.

  • 오류 보고서 맞춤설정 - SDK를 추가하는 즉시 Crashlytics에서 자동으로 오류 보고서 수집을 시작하지만 보고 선택 옵션, 로그, 키를 추가하고 심각하지 않은 오류를 추적하여 설정을 맞춤설정할 수도 있습니다.

  • API 변경사항 알아보기 - Crashlytics가 Fabric Crashlytics에서 Firebase Crashlytics로 어떻게 개선되었는지 알아봅니다.

  • Google 애널리틱스 추가 - Google 애널리틱스의 강력한 기능을 Firebase Crashlytics와 결합하여 Firebase Console에서 비정상 종료가 발생하지 않은 사용자 통계를 확인합니다.