Testare l'implementazione di Crashlytics (piattaforme Apple)

Seleziona la piattaforma: iOS+ Android Flutter Unity


Utilizza questa guida se hai seguito la guida introduttiva, e non vedi ancora arresti anomali nella Crashlytics dashboard.

Forzare un arresto anomalo per testare l'implementazione

  1. Aggiungi all'app il codice che puoi utilizzare per forzare un arresto anomalo di test.

    Puoi utilizzare il seguente codice per aggiungere un pulsante all'app che, quando viene premuto, causa un arresto anomalo. Il pulsante è etichettato "Test Crash".

    SwiftUI

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

    UIKit

    Swift

    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]
      }
    }

    Objective-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. Crea ed esegui l'app in Xcode con il debugger di Xcode disconnesso.

    1. Fai clic su Crea ed esegui lo schema corrente per creare l'app su un dispositivo di test o un simulatore.

    2. Attendi che l'app sia in esecuzione, quindi fai clic su Interrompi l'esecuzione dello schema o dell'azione per chiudere l'istanza iniziale dell'app. Questa istanza iniziale includeva il debugger che interferisce con Crashlytics.

  3. Forza l'arresto anomalo di test per inviare il primo report sugli arresti anomali dell'app:

    1. Apri l'app dalla schermata Home del dispositivo o del simulatore di test.

    2. Nell'app, premi il pulsante "Test Crash" che hai aggiunto utilizzando il codice sopra riportato.

    3. Dopo l'arresto anomalo dell'app, eseguila di nuovo da Xcode in modo che possa inviare il report sugli arresti anomali a Firebase.

  4. Nella console Firebase, vai alla dashboard DevOps e coinvolgimento > Crashlytics per verificare la presenza del report sugli arresti anomali di test .

    Se hai aggiornato la console e non vedi ancora l'arresto anomalo di test dopo cinque minuti, prova ad attivare il logging di debug (sezione successiva).

Attivare il logging di debug per Crashlytics

Se non vedi l'arresto anomalo di test nella dashboard Crashlytics, puoi utilizzare il logging di debug per Crashlytics per risolvere il problema.

  1. Attiva il logging di debug:

    1. In Xcode, seleziona Product > Scheme > Edit scheme (Prodotto > Schema > Modifica schema).

    2. Seleziona Run (Esegui) dal menu a sinistra, quindi seleziona la scheda Arguments (Argomenti).

    3. Nella sezione Arguments Passed on Launch (Argomenti passati al momento dell'avvio), aggiungi -FIRDebugEnabled.

  2. Forza un arresto anomalo di test. La prima sezione di questa pagina descrive come farlo.

  3. Nei log, cerca un messaggio di log da Crashlytics che contenga la seguente stringa, che verifica che l'app stia inviando arresti anomali a Firebase.

    Completed report submission

Se dopo cinque minuti non vedi ancora questo log o l'arresto anomalo di test nella dashboard DevOps e coinvolgimento > Crashlytics della Firebase console, contatta l'assistenza Firebase con una copia dell' output del log in modo che possiamo aiutarti a risolvere ulteriormente il problema.

Passaggi successivi