Diagnostiquer des bogues non reproductibles?

J'ai une question très basique, mais terriblement importante et potentiellement impossible: comment diagnostiquer un bug que vous ne pouvez pas reproduire?

Deux fois maintenant, j'ai reçu des courriels de gens qui me posaient des questions sur les bogues liés aux applications que je n'arrive pas à reproduire. Les iPhones non modifiés, les logiciels actuels, les réinstallations difficiles et les réinitialisations matérielles, etc. Il se bloque à chaque fois pour eux, et ça marche parfaitement pour moi, (sans countr qu'il a été approuvé pour l'App Store en premier lieu donc je suis clairement pas le seul). J'avais toujours compris que la cohérence des appareils était l'un des gros arguments de vente d'Apple pour les développeurs, mais cela rend également difficile de déterminer ce qui différencie leur appareil de la mienne …

Donc, en dehors de "continuer à tester", y a-t-il un tour de passe-passe parmi les programmeurs pour ce genre de chose? Une fonction du simulateur d'iPhone qui vous permet de tester non seulement différentes tailles d'écran mais différentes configurations matérielles, etc.? Ou suis-je juste pas de chance, et coincé disant à mon client "désolé, ça marche pour moi"?

Quelqu'un peut-il partager ses expériences ou suggestions à ce sujet?

Vous devriez probablement commencer par installer un outil de rapport d'accident comme Crashlytics . Cela peut vous donner les indices dont vous avez besoin ou au less vous aider à affiner l'location de la journalisation supplémentaire.

Bien que les rapports d' erreur d' iTunes Connect puissent être utiles, les services de génération de rapports d' erreur tels que Crittercism sont plus conviviaux et complets. Crittercism a été très utile pour dépister les accidents se produisant rarement pour mes applications et peut être utilisé gratuitement. (Je n'ai aucune association avec Crittercism.)

Dans iTunes Connect, vous pouvez accéder aux rapports d'erreur. Ces rapports d'erreur incluent des stacks d'appels que vous pouvez symboliser, puis vous pouvez voir où il se bloque réellement.

Voici quelques bonnes instructions pour symboliser: symbolicating-iphone-app-crash-reports

Il est important de conserver vos files dsym de chaque build et archive en toute security. Vous pouvez les utiliser pour symboliser les rapports d'erreur, pour voir les détails de l'incident. Les users devront cependant choisir de soumettre des rapports d'erreur. Je pense que c'est une fonctionnalité d'iTunesConnect.