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 Console의 Crashlytics 대시보드로 이동하여 테스트 비정상 종료를 확인합니다.

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

Crashlytics 디버그 로깅 사용 설정

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

  1. Crashlytics의 디버그 로깅을 사용 설정하고 확인합니다.

    1. 앱을 실행하기 전에 다음 adb 셸 플래그를 DEBUG로 설정합니다.

      adb shell setprop log.tag.FirebaseCrashlytics DEBUG
    2. 다음 명령어를 실행하여 기기 로그의 로그를 확인합니다.

      adb logcat -s FirebaseCrashlytics
  2. 테스트 비정상 종료를 강제로 적용합니다. 이 페이지의 첫 번째 섹션에서 이를 수행하는 방법을 설명합니다.

  3. logcat 출력에 다음 메시지나 코드 204가 있는지 확인합니다. 메시지나 코드를 통해 앱이 Firebase로 비정상 종료를 전송하는지 확인 가능합니다.

    Crashlytics report upload complete

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

다음 단계