web-dev-qa-db-fra.com

Comment implémenter la gestion des exceptions/erreurs dans Swift 4 avec le rapport de crash natif

Je souhaite implémenter rapport d'incident natif _ (sans utiliser de bibliothèque tierce recommandée) dans mon code iOS Swift 4_ et informer mon serveur dorsal avec appel d'API lorsque le App Crashes ou en générant des exceptions. J'ai constaté que l'App Store/iTunes Connect fournit le nombre de crashs, mais il {ne fournit pas d'informations de crash comme de quelle UIViewController ou de quelle erreur il est tombé en panne. Quelqu'un pourrait-il m'aider dans ce domaine? Merci d'avance.

10
iajmeri43

Oui, vous devez créer votre gestionnaire de rapports de blocage personnalisé et vous pouvez utiliser NSSetUncaughtExceptionHandler pour obtenir la pile de rapports de blocage.

Exemple

NSSetUncaughtExceptionHandler { exception in

    print(exception)
    print(exception.callStackSymbols)

    // Write callStackSymbols into the file
    // Call your mail function with that file
    // mail()
}

let array = NSArray()
let element = array.object(at: 4)

Vous pouvez écrire ce rapport d'incident dans le fichier et le poster.

4
Sanjay Shah

Comme vous l'avez dit plus tôt, iTunes fournit uniquement le nombre de crashs, mais ne fournit pas d'informations sur le crash.

En réalité, XCode vous fournit lui-même les détails complets du plantage, avec le numéro de ligne, les informations sur le périphérique, les détails de la construction, etc.

Ici, je décris comment vous pouvez obtenir détail des plantages de Xcode

  1. Allez dans 'Fenêtre' -> 'Organiseur' dans xcode

 enter image description here

  1. Une nouvelle fenêtre s’ouvre, sélectionnez le nom de votre application dans la liste gauche des applications, puis sélectionnez Crashes dans le contrôle du segment supérieur.

 enter image description here

  1. Maintenant, vous pouvez sélectionner la version de votre choix (même si vous pouvez sélectionner la version bêta que vous avez téléchargée sur testflight). Une fois la version sélectionnée, vous obtiendrez tous les plantages de cette version. Vous pouvez voir dans l'image ci-dessous que, il montre les détails de l'appareil, les détails du fil, etc. 

 enter image description here

  1. Maintenant, si vous voulez aller à la ligne, où le crash est survenu. Survolez les lignes en gras dans les détails du crash, vous verrez le bouton fléché comme dans l'image ci-dessous. Une fois que vous avez cliqué sur ce bouton, Xcode vous redirigera vers la ligne associée de votre projet.

 enter image description here

Je pense, vous le savez maintenant, comment visualiser les collisions de l'application en direct.

1
Mehul Thakkar