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

Crashlytics 구현 테스트

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

충돌을 강제로 실행하여 구현 테스트

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

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

    SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    UIKit

    빠른

    import UIKit
    
    class ViewController: UIViewController {
      override func viewDidLoad() {
          super.viewDidLoad()
    
          // Do any additional setup after loading the view, typically from a nib.
    
          let button = UIButton(type: .roundedRect)
          button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)
          button.setTitle("Test Crash", for: [])
          button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
          view.addSubview(button)
      }
    
      @IBAction func crashButtonTapped(_ sender: AnyObject) {
          let numbers = [0]
          let _ = numbers[1]
      }
    }
    

    목표-C

    #import "ViewController.h"
    
    @implementation ViewController
    ‐ (void)viewDidLoad {
        [super viewDidLoad];
    
        // Do any additional setup after loading the view, typically from a nib.
    
        UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(20, 50, 100, 30);
        [button setTitle:@"Test Crash" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(crashButtonTapped:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
    }
    
    ‐ (IBAction)crashButtonTapped:(id)sender {
        @[][1];
    }
    
    @end
    
  2. Xcode에서 앱을 빌드하고 실행합니다.

    1. 빌드를 클릭한 다음 현재 체계를 실행하여 테스트 기기 또는 시뮬레이터에서 앱을 빌드합니다.

    2. 앱이 실행될 때까지 기다린 다음 구성표 또는 작업 실행 중지를 클릭하여 앱의 초기 인스턴스를 닫습니다. 이 초기 인스턴스에는 Crashlytics를 방해하는 디버거가 포함되어 있습니다.

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

    1. 테스트 기기 또는 시뮬레이터의 홈 화면에서 앱을 엽니다.

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

    3. 앱이 비정상 종료된 후 Xcode에서 다시 실행하여 앱에서 Firebase로 비정상 종료 보고서를 보낼 수 있도록 하세요.

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

콘솔을 새로 고쳤는데도 5분 후에도 테스트 충돌이 표시되지 않으면 디버그 로깅을 활성화해 보십시오(다음 섹션).

Crashlytics용 디버그 로깅 사용

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

  1. 디버그 로깅 활성화:

    1. Xcode에서 Product > Scheme > Edit scheme 을 선택합니다.

    2. 왼쪽 메뉴에서 실행 을 선택한 다음 인수 탭을 선택합니다.

    3. 시작 시 전달되는 인수 섹션에서 -FIRDebugEnabled 를 추가합니다.

  2. 테스트 충돌을 강제합니다. 이 페이지의 첫 번째 섹션에서는 이를 수행하는 방법을 설명합니다.

  3. 로그 내에서 다음 문자열이 포함된 Crashlytics의 로그 메시지를 검색하여 앱이 Firebase로 비정상 종료를 전송하고 있음을 확인합니다.

    Completed report submission

5분 후에도 Firebase 콘솔의 Crashlytics 대시보드에 이 로그나 테스트 비정상 종료가 표시되지 않으면 로그 출력 사본을 가지고 Firebase 지원팀 에 문의하시면 추가 문제 해결을 도와드리겠습니다.

다음 단계