Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Firebase Crashlytics 시작하기

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 빠른 시작에서는 Firebase Console에서 포괄적인 비정상 종료 보고서를 얻을 수 있도록 Firebase Crashlytics SDK를 사용하여 앱에서 Firebase Crashlytics를 설정하는 방법을 설명합니다.Android용 Crashlytics를 사용하면 비정상 종료, 치명적이지 않은 오류, '애플리케이션 응답 없음'(ANR) 오류에 대한 보고서를 받을 수 있습니다.

Crashlytics를 설정하려면 Firebase 콘솔과 IDE 모두에서 작업(예: Firebase 구성 파일 및 Crashlytics SDK 추가)이 필요합니다. 설정을 완료하려면 테스트 비정상 종료를 강제 실행하여 첫 번째 비정상 종료 보고서를 Firebase로 보내야 합니다.

시작하기 전에

  1. 아직 추가하지 않았다면 Android 프로젝트에 Firebase 를 추가하세요. Android 앱이 없는 경우 샘플 앱 을 다운로드할 수 있습니다.

  2. 권장사항 : 비정상 종료 사용자, 탐색경로 로그, 속도 알림과 같은 기능을 사용하려면 Firebase 프로젝트에서 Google 애널리틱스를 사용 설정해야 합니다.

    • 기존 Firebase 프로젝트에 Google 애널리틱스가 활성화되지 않은 경우 Firebase 콘솔의 > 프로젝트 설정통합 에서 Google 애널리틱스를 활성화할 수 있습니다.

    • 새 Firebase 프로젝트를 만드는 경우 프로젝트 생성 워크플로 중에 Google 애널리틱스를 활성화하세요.

1단계 : 앱에 Crashlytics SDK 추가

모듈(앱 수준) Gradle 파일 (일반적으로 <project>/<app-module>/build.gradle )에서 Crashlytics Android 라이브러리의 종속성을 추가합니다. Firebase Android BoM 을 사용하여 라이브러리 버전 관리를 제어하는 ​​것이 좋습니다.

Crashlytics 사용 환경을 최적화하려면 Firebase 프로젝트에서 Google 애널리틱스를 사용 설정하고 앱에 Google 애널리틱스용 Firebase SDK를 추가하는 것이 좋습니다.

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.0')

    // Add the dependencies for the Crashlytics and Analytics libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-crashlytics-ktx'
    implementation 'com.google.firebase:firebase-analytics-ktx'
}

Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 버전의 Firebase Android 라이브러리를 사용합니다.

(대안) BoM을 사용 하지 않고 Firebase 라이브러리 종속성 추가

Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.

앱에서 여러 Firebase 라이브러리를 사용하는 경우 BoM을 사용하여 모든 버전이 호환되도록 라이브러리 버전을 관리하는 것이 좋습니다.

dependencies {
    // Add the dependencies for the Crashlytics and Analytics libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-crashlytics-ktx:18.3.3'
    implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0'
}

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.0')

    // Add the dependencies for the Crashlytics and Analytics libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-crashlytics'
    implementation 'com.google.firebase:firebase-analytics'
}

Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 버전의 Firebase Android 라이브러리를 사용합니다.

(대안) BoM을 사용 하지 않고 Firebase 라이브러리 종속성 추가

Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.

앱에서 여러 Firebase 라이브러리를 사용하는 경우 BoM을 사용하여 모든 버전이 호환되도록 라이브러리 버전을 관리하는 것이 좋습니다.

dependencies {
    // Add the dependencies for the Crashlytics and Analytics libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-crashlytics:18.3.3'
    implementation 'com.google.firebase:firebase-analytics:21.2.0'
}

2단계 : 앱에 Crashlytics Gradle 플러그인 추가

  1. 루트 수준(프로젝트 수준) Gradle 파일( <project>/build.gradle )에서 Crashlytics Gradle 플러그인을 buildscript 종속 항목으로 추가합니다.

    buildscript {
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
    
        dependencies {
            ...
            classpath 'com.android.tools.build:gradle:7.2.0'
    
            // Make sure that you have the Google services Gradle plugin dependency
            classpath 'com.google.gms:google-services:4.3.15'
    
            // Add the dependency for the Crashlytics Gradle plugin
            classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
        }
    }
  2. 모듈(앱 수준) Gradle 파일(일반적으로 <project>/<app-module>/build.gradle )에서 Crashlytics Gradle 플러그인을 추가합니다.

    plugins {
        id 'com.android.application'
    
        // Make sure that you have the Google services Gradle plugin
        id 'com.google.gms.google-services'
    
        // Add the Crashlytics Gradle plugin
        id 'com.google.firebase.crashlytics'
        ...
    }

3단계 : 설정을 완료하기 위해 강제로 테스트 비정상 종료

Crashlytics 설정을 완료하고 Firebase 콘솔의 Crashlytics 대시보드에서 초기 데이터를 보려면 강제로 테스트 비정상 종료를 실행해야 합니다.

  1. 테스트 비정상 종료를 강제하는 데 사용할 수 있는 코드를 앱에 추가합니다.

    앱의 MainActivity 에서 다음 코드를 사용하여 눌렀을 때 충돌을 일으키는 버튼을 앱에 추가할 수 있습니다. 버튼에는 "Test Crash"라는 라벨이 붙어 있습니다.

    Kotlin+KTX

    val crashButton = Button(this)
    crashButton.text = "Test Crash"
    crashButton.setOnClickListener {
       throw RuntimeException("Test Crash") // Force a crash
    }
    
    addContentView(crashButton, ViewGroup.LayoutParams(
           ViewGroup.LayoutParams.MATCH_PARENT,
           ViewGroup.LayoutParams.WRAP_CONTENT))
    

    Java

    Button crashButton = new Button(this);
    crashButton.setText("Test Crash");
    crashButton.setOnClickListener(new View.OnClickListener() {
       public void onClick(View view) {
           throw new RuntimeException("Test Crash"); // Force a crash
       }
    });
    
    addContentView(crashButton, new ViewGroup.LayoutParams(
           ViewGroup.LayoutParams.MATCH_PARENT,
           ViewGroup.LayoutParams.WRAP_CONTENT));
    
  2. 앱을 빌드하고 실행합니다.

  3. 앱의 첫 번째 충돌 보고서를 보내려면 테스트 충돌을 강제 실행합니다.

    1. 테스트 장치 또는 에뮬레이터에서 앱을 엽니다.

    2. 앱에서 위의 코드를 사용하여 추가한 "Test Crash" 버튼을 누릅니다.

    3. 앱이 비정상 종료된 후 앱이 비정상 종료 보고서를 Firebase로 보낼 수 있도록 앱을 다시 시작하세요.

  4. Firebase 콘솔의 Crashlytics 대시보드 로 이동하여 테스트 비정상 종료를 확인하세요.

    콘솔을 새로 고쳤는데도 5분 후에도 테스트 충돌이 표시되지 않으면 디버그 로깅을 활성화 하여 앱이 충돌 보고서를 보내고 있는지 확인하십시오.


그리고 그게 다야! 이제 Crashlytics에서 비정상 종료, 치명적이지 않은 오류, ANR이 있는지 앱을 모니터링하고 있습니다. 모든 보고서와 통계를 보고 조사하려면 Crashlytics 대시보드 를 방문하세요.

다음 단계

  • Crashlytics 대시보드에서 직접 Google Play 트랙별로 Android 앱의 충돌 보고서를 필터링할 수 있도록 Google Play와 통합 합니다. 이를 통해 대시보드를 특정 빌드에 더 집중할 수 있습니다.
  • Android Studio에서 Crashlytics 데이터를 보고 필터링합니다.
    • Android Studio의 AQI( App Quality Insights ) 창을 사용하여 코드와 함께 Crashlytics 데이터를 확인하세요. 주요 문제 디버깅을 시작하기 위해 Crashlytics 대시보드와 IDE 사이를 이동할 필요가 없습니다.
    • Android Studio의 Electric Eel 릴리스(안정적)에서 AQI 창에 액세스하거나 Flamingo(베타)에서 새로운 AQI 기능 을 사용해 보세요. 원하는 Android Studio 버전을 다운로드합니다.
    • Android 스튜디오 문서에서 AQI 창을 사용하는 방법을 알아보세요.
    • 우리는 당신의 의견을 듣고 싶습니다! 버그 보고서를 작성 하여 AQI 창에 대한 피드백을 보내주십시오.