Crashlytics 구현 테스트

비정상 종료로 구현 테스트하기

  1. 기존 GameObject를 찾은 후 다음 스크립트에 추가합니다. 이 스크립트는 앱을 실행하고 몇 초 후에 테스트 비정상 종료를 일으킵니다.

    using System;
    using UnityEngine;
    
    public class CrashlyticsTester : MonoBehaviour {
    
        int updatesBeforeException;
    
        // Use this for initialization
        void Start () {
          updatesBeforeException = 0;
        }
    
        // Update is called once per frame
        void Update()
        {
            // Call the exception-throwing method here so that it's run
            // every frame update
            throwExceptionEvery60Updates();
        }
    
        // A method that tests your Crashlytics implementation by throwing an
        // exception every 60 frame updates. You should see reports in the
        // Firebase console a few minutes after running your app with this method.
        void throwExceptionEvery60Updates()
        {
            if (updatesBeforeException > 0)
            {
                updatesBeforeException--;
            }
            else
            {
                // Set the counter to 60 updates
                updatesBeforeException = 60;
    
                // Throw an exception to test your Crashlytics implementation
                throw new System.Exception("test exception please ignore");
            }
        }
    }
    
  2. 앱을 빌드하고 빌드가 완료되면 기호 정보를 업로드합니다.

    • iOS+: Firebase Unity 편집기 플러그인이 기호 파일을 업로드하도록 Xcode 프로젝트를 자동으로 구성해 줍니다.

    • Android: IL2CPP를 사용하는 Android 앱의 경우 Firebase CLI crashlytics:symbols:upload 명령어를 실행하여 기호 파일을 업로드합니다.

  3. 앱을 실행합니다. 앱이 실행되면 기기 로그를 확인하고 CrashlyticsTester에서 예외가 트리거될 때까지 기다립니다.

    • iOS+: Xcode 하단 창에서 로그를 확인합니다.

    • Android: 터미널에서 adb logcat 명령어를 실행하여 로그를 확인합니다.

  4. Firebase Console의 Crashlytics 대시보드로 이동하여 테스트 비정상 종료를 확인합니다.

Console을 새로고침하고 5분 후에도 테스트 비정상 종료가 표시되지 않으면 디버그 로깅을 사용 설정해 보세요(다음 섹션).

Crashlytics 디버그 로깅 사용 설정

Crashlytics 대시보드에 테스트 비정상 종료가 표시되지 않는 경우 Crashlytics의 디버그 로깅을 사용하여 문제를 추적할 수 있습니다.

  1. 앱 초기화에 다음 코드를 추가하여 Firebase의 디버그 로깅을 사용 설정합니다.

    Firebase.FirebaseApp.LogLevel = Firebase.LogLevel.Debug;
  2. 테스트 비정상 종료를 강제로 적용합니다. 이 페이지의 첫 번째 섹션에서 이를 수행하는 방법을 설명합니다.

5분이 지나도 Firebase Console의 Crashlytics 대시보드에 Firebase의 로그 또는 테스트 비정상 종료가 표시되지 않으면 Firebase 지원팀에 문의하여 로그 출력 사본을 보내 주시면 문제 해결에 도움이 됩니다.

다음 단계