L'utilisation des SDK de rapports de crash multiples simultanément avec MVVMCross peut être complexe et peut ne pas toujours être recommandée, en particulier sur iOS. Voici un aperçu détaillé:
Considérations générales
1. Limitations iOS: sur iOS, l'utilisation des SDK de rapports de crash multiples n'est généralement pas recommandée. En effet, iOS gère les exceptions et les signaux d'une manière qui ne garantit pas que tous les journalistes de crash attraperont toutes les exceptions et les signaux, ce qui conduit potentiellement à des accidents manqués [8]. Cependant, certains développeurs ont utilisé avec succès plusieurs journalistes de crash comme TestFlight et Crashlytics ensemble, mais cela nécessite une configuration minutieuse [4].
2. Flexibilité Android: sur Android, il est plus possible d'utiliser simultanément les SDK de rapports de crash. Cependant, il est crucial de s'assurer que chaque SDK est initialisé dans le bon ordre pour éviter les conflits. Par exemple, Instabug doit être initialisé après d'autres journalistes de crash [8].
Intégration MVVMCross
Lors de l'intégration des SDK de rapport de crash avec MVVMCross, vous devez considérer comment chaque SDK gère les exceptions non apprises et comment ils interagissent avec le cadre MVVMCross.
- Gestion des exceptions: MVVMCross lui-même ne fournit pas de reportage de crash intégré. Vous devrez intégrer un SDK tiers. Lorsque vous utilisez plusieurs SDK, assurez-vous qu'ils sont configurés pour gérer correctement les exceptions sans interférer les uns avec les autres.
- Configuration du projet de base: dans votre projet MVVMCross Core, vous ne gérez généralement pas directement les rapports de crash. Au lieu de cela, vous intégrez les rapports de crash dans les projets spécifiques à la plate-forme (par exemple, iOS et Android). Cependant, vous voudrez peut-être centraliser la logique de gestion des erreurs dans le projet de base pour la cohérence entre les plates-formes.
Options SDK de reporting de crash
Plusieurs SDK de rapport de crash peuvent être utilisés avec MVVMCross:
- App Center: fournit des rapports et des analyses complets de crash pour iOS et Android. Il est facile de s'intégrer aux projets Xamarin et MVVMCross [5].
- Nouvelle relique: offre des rapports de crash robustes et une surveillance des performances. Il prend en charge Android et peut fonctionner aux côtés d'autres cadres de rapport de crash [2] [10].
- Instabug: fournit des rapports de crash détaillés et des outils de rétroaction des utilisateurs. Il peut être utilisé sur iOS et Android, mais avec les limites notées sur iOS [8].
Étapes d'implémentation
Pour implémenter plusieurs SDK de rapport de crash avec mvvmcross:
1. Choisissez SDK: Sélectionnez les SDK que vous souhaitez utiliser en fonction de votre plate-forme et de vos exigences de fonctionnalité.
2. Initialiser les SDK: assurez-vous que chaque SDK est initialisé correctement dans les projets spécifiques à la plate-forme. Sur Android, initialisez-les dans le bon ordre pour éviter les conflits.
3. Gérer les exceptions: configurer chaque SDK pour gérer les exceptions non apprises. Si vous utilisez plusieurs SDK, assurez-vous qu'ils sont configurés pour travailler ensemble sans interférer avec la gestion des exceptions les uns des autres.
4. Testez soigneusement: testez votre application en profondeur pour vous assurer que tous les SDK de déclaration de crash fonctionnent comme prévu et ne provoquent aucun conflit.
En résumé, bien qu'il soit techniquement possible d'utiliser plusieurs SDK de rapport de crash avec MVVMCross, il nécessite une configuration et des tests minutieux, en particulier sur iOS. Sur Android, il est plus simple mais nécessite toujours une attention à l'ordre d'initialisation.
Citations:[1] https://stackoverflow.com/questions/19464339/xamarin-mvvmcross-and-crashreporting
[2] https://docs.newrelic.com/docs/mobile-monitring/new-relic-mobile-android/install-configure/android-agent-crash-reporting/
[3] https://www.mvvmcross.com/documentation/advanced/mvxnotifytask
[4] https://stackoverflow.com/questions/10755278/USE-Multiple-crash-reporter-on-ios
[5] https://www.youtube.com/watch?v=jr2fe-wan9c
[6] https://stackoverflow.com/questions/59078153/mvvmcross-android-10-0-q-mainactivity-exception-crash-on-setcontentView/59558389
[7] https://github.com/mvvmcross/mvvmcross/issues/4295
[8] https://help.instabug.com/en/articles/2102240-Can-i-Use-The-instabug-crash-reportting-tool-in-parallel-with-other-crash-reporters
[9] https://www.appdome.com/how-to/mobile-app-security/mobile-data-encryption/appdome-integrates-crash-reportting-sdk/
[10] https://docs.newrelic.com/docs/mobile-monitring/new-relic-mobile-android/install-configure/android-agent-native-crash-reportting/
[11] https://support.google.com/googleplay/android-developer/answer/12246095?hl=en
[12] https://learn.microsoft.com/en-us/appcenter/sdk/crashes/android
[13] https://learn.microsoft.com/en-us/appcenter/sdk/troubleshooting/xamarin
[14] https://www.guardsquare.com/blog/making-the-most-out-of-ios-crash-reports-with-lldb