Firebase Crashlytics 비정상 종료 보고서 맞춤설정


Crashlytics 대시보드에서 문제를 클릭하여 세부정보를 확인할 수 있습니다. 이벤트 보고서 이러한 보고서를 맞춤설정하면 보고되는 이벤트와 관련된 상황, 그리고 앱에서 발생하는 상황 Crashlytics

  • 앱에서 Google Analytics용 Firebase SDK 이러한 로그를 사용하면 앱에서 Crashlytics 수집 이벤트로 이어지는 사용자 작업

  • 자동 비정상 종료 보고를 사용 중지하고 사용자에 대해 보고 선택 옵션을 사용 설정합니다. 참고로 기본적으로 Crashlytics에서 모든 캠페인의 비정상 종료 보고서를 자동으로 수집합니다. 확인할 수 있습니다.

예외 보고

포착된 예외 보고

예상되는 예외가 있는 경우 Crashlytics SDK를 사용할 수 있습니다. 심각하지 않은 이벤트로 보고합니다. 이러한 이벤트는 기기에 로깅된 후, 다음 심각한 이벤트 보고서와 함께 또는 최종 사용자가 게임을 다시 시작할 때 전송됩니다.

다음 메서드를 사용하여 C#으로 예외를 로깅할 수 있습니다.

Crashlytics.LogException(Exception ex);

게임의 try/catch 블록에 예상 예외를 로깅할 수 있습니다.

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

포착되지 않은 예외 보고

게임을 비정상 종료하지 않는 확인되지 않은 예외 (예: 포착되지 않음) 게임 로직의 C# 예외) Crashlytics SDK가 이를 보고하도록 할 수 있습니다. 심각한 이벤트로 설정하여 Crashlytics.ReportUncaughtExceptionsAsFatal 속성을 true로 변환하고 여기서 Unity 프로젝트에서 Crashlytics 초기화 에서 자세한 내용을 확인하실 수 있습니다. 이러한 이벤트는 별도의 작업 없이 실시간으로 Crashlytics에 보고됩니다. 최종 사용자가 게임을 다시 시작할 수 있습니다.

포착되지 않은 예외를 심각한 이벤트로 보고하면 비정상 종료가 발생하지 않은 사용자 통계와 신속 알림에 포함됩니다.

네이티브 충돌은 항상 심각한 이벤트로 보고됩니다. 이러한 이벤트는 기기에 로깅된 다음 최종 사용자가 게임을 다시 시작할 때 함께 전송됩니다.

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

GWP-ASan 보고서를 포함하여 메모리 손상 문제 디버그

IL2CPP를 사용하는 Android 앱의 경우 Crashlytics를 사용하면 비정상 종료를 디버그할 수 있습니다. GWP-ASan 보고서를 수집하여 네이티브 메모리 오류로 인해 발생합니다. 이러한 메모리 관련 오류는 앱 보안 취약점의 주요 원인인 앱 내의 메모리 손상과 관련이 있을 수 있습니다.

  • 이 데이터는 새로운 '메모리 스택 트레이스'에서 확인할 수 있습니다. 탭을 클릭하면 문제의 세부정보를 Crashlytics 대시보드.

  • 새로운 'GWP-ASan 보고서' 신호와 필터를 사용하여 이 데이터와 관련된 모든 문제를 빠르게 확인할 수도 있습니다.

앱이 Unity용 최신 Crashlytics SDK (v10.7.0 이상)를 사용하고 GWP-ASan이 명시적으로 사용 설정됨 ( Android 앱 매니페스트 수정). 앱에 C++ 코드가 있는 경우 다음을 사용하여 GWP-ASan 설정을 테스트할 수 있습니다. Android 문서의 네이티브 코드 예

커스텀 키 추가

커스텀 키를 사용하면 비정상 종료로 이어지는 앱의 구체적인 상태를 확인할 수 있습니다. 임의의 키-값 쌍을 비정상 종료 보고서에 연결한 다음 커스텀 키를 사용하여 Firebase 콘솔에서 비정상 종료 보고서를 검색하고 필터링합니다.

  • Crashlytics 대시보드에서 문제를 검색할 수 있습니다. 맞춤 키-값 쌍입니다
  • 콘솔에서 특정 문제를 검토할 때 각 이벤트와 연결된 커스텀 키를 검토하고( 하위 탭) 이벤트를 커스텀 키로 필터링할 수도 있습니다(페이지 상단의 필터 메뉴).

여러 번 호출하면 기존 키의 값이 새로 업데이트되고 비정상 종료가 기록될 때 최신 값만 캡처됩니다.

Crashlytics.SetCustomKey(string key, string value);

커스텀 로그 메시지 추가

기록된 메시지는 비정상 종료 데이터와 연결되어 있으며 특정 비정상 종료를 볼 때의 Firebase Crashlytics 대시보드

Crashlytics.Log(string message);

사용자 식별자 설정

개인 정보를 공개하거나 전송하지 않고 ID 번호, 토큰 또는 해시 값을 사용하여 애플리케이션 최종 사용자를 고유하게 식별할 수 있습니다. 값을 빈 문자열로 설정하여 지울 수도 있습니다. 이 값은 다음과 같은 경우 Firebase Crashlytics 대시보드에 표시됩니다. 확인할 수 있습니다

Crashlytics.SetUserId(string identifier);

탐색경로 로그 가져오기

탐색경로 로그를 사용하면 사용자와의 상호작용을 더 잘 이해할 수 있습니다. 앱에서 비정상 종료, 심각하지 않은 문제, ANR 이벤트로 이어지는 경우가 있습니다. 이러한 로그는 도움이 될 수 있습니다

탐색경로 로그는 Google 애널리틱스를 기반으로 하므로 탐색경로 로그를 얻으려면 ~해야 해 Google 애널리틱스 사용 설정 설정되고 Google Analytics용 Firebase SDK 추가 해야 합니다. 이러한 요구사항이 충족되면 탐색경로 로그가 자동으로 세부정보를 볼 때 로그 탭 내의 이벤트 데이터에 포함됨 문제를 일으킬 수 있습니다

Analytics SDK screen_view 이벤트를 자동으로 로깅 그러면 탐색경로 로그에 광고가 표시되기 전에 조회된 화면 목록이 ANR 이벤트 등이 있습니다 screen_view 탐색경로 로그에는 firebase_screen_class 매개변수

탐색경로 로그에는 맞춤 이벤트를 기록하며, 사용자는 이 이벤트를 세션(이벤트의 매개변수 데이터 포함) 이 데이터를 통해 비정상 종료, 심각하지 않은 문제, ANR 이벤트로 이어지는 사용자 작업의 비율

참고: Google Analytics 데이터 수집 및 사용 제어 여기에는 탐색경로 로그를 채우는 데이터도 포함됩니다.

보고 선택 옵션 사용 설정

기본적으로 Crashlytics에서는 확인할 수 있습니다. 사용자가 비정상 종료 보고 옵션을 선택할 수 있어 자신이 전송하는 데이터를 더욱 효과적으로 관리할 수 있습니다.

선택한 항목에 대해서만 자동 수집을 사용 중지하고 Crashlytics을(를) 초기화하려면 다음 단계를 따르세요. 사용자의 경우 런타임에 Crashlytics 데이터 수집 재정의를 호출합니다. 이 재정의 값은 앱이 실행되는 동안 유지되므로 Crashlytics가 자동으로 보고서를 수집합니다. 자동 비정상 종료 보고를 선택 해제하려면 다음을 전달합니다. false를 재정의 값으로 사용하는 것이 좋습니다. false로 설정하면 새 값은 적용되지 않습니다. 적용되지 않습니다.

Crashlytics.IsCrashlyticsCollectionEnabled = true
드림

비정상 종료 통계 데이터 관리

비정상 종료 통계는 익명화된 스택 트레이스를 다른 Firebase 앱의 트레이스와 비교하여 문제가 더 큰 트렌드에 속하는지 여부를 파악함으로써 문제를 해결하는 데 도움을 줍니다. 비정상 종료 통계가 디버깅에 도움이 되는 경우도 많습니다.

비정상 종료 통계에서는 비정상 종료 집계 데이터를 사용하여 공통적인 안정성 트렌드를 파악합니다. 앱 데이터를 공유하지 않으려면 비정상 종료 통계를 선택 해제하면 됩니다. Crashlytics 문제 목록 상단의 비정상 종료 통계 메뉴에서 (Firebase 콘솔에서 확인)