2017-12-22 15 views
0

복구를 시도 할 수 있도록 마지막 세션이 중단되었는지 감지하고 싶습니다. Firebase & CrashlyticsDelegate

나는 응용 프로그램의 didFinishLaunchingWithOptions에서이 같은 CrashlyticsDelegate 설정을 가지고 :

Crashlytics.sharedInstance().delegate = self 
FirebaseApp.configure() 

(Crashlytics는 중포 기지에 의해 초기화)

이것은 내가 사용하고 위임 방법 :

func crashlyticsDidDetectReport(forLastExecution report: CLSReport, completionHandler: @escaping (Bool) -> Void) { 
    print("FOUND CRASH") 
    PXNAssistant.shared.recoverCrash() 
    completionHandler(true) 
} 

그런 다음 충돌을 강요하기 위해 이것을 호출합니다.

Crashlytics.sharedInstance().crash() 

"FOUND CRASH"는 인쇄되지 않습니다 ...

누구든지 내가 뭘 잘못하고 있는지 알 수 있습니까?

답변

1

언뜻보기에 코드가 정상적으로 보입니다. 어디 전화 Crashlytics.sharedInstance().crash()? 앱 델리게이트에 있다면, 아마도 앱 대표가 firebase/crashlytics 설정을 완료하지 않았기 때문에 아마도 등록하지 않고있을 것입니다. 코드에서 force-unwrapping 또는 do-try-catch 블록과 같은 충돌이 발생할 수있는 위치의 Crashlytics.sharedInstance().crash()을 사용해야합니다. Firebase의 예제 코드를 프로젝트에 구현하려 했습니까?

import UIKit 
import Crashlytics 

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("Crash", for: []) 
     button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) 
     view.addSubview(button) 
    } 

    @IBAction func crashButtonTapped(_ sender: AnyObject) { 
     Crashlytics.sharedInstance().crash() 
    } 
}