Il report di crash differito, come introdotto nella versione Android Agent di New Relic versione 6.0.0, prevede la registrazione di rapporti sugli arresti anomali quando si verificano ma non lo caricano fino al lancio dell'applicazione successiva [1]. Questo approccio può influire sull'integrazione di SDK di reporting multipli in diversi modi:
1. Duplicazione del rapporto sugli incidenti: i report differiti aiutano a ridurre i rapporti di crash duplicati ritardando il caricamento fino al riavvio dell'app. Tuttavia, quando si utilizza più SDK, ognuno potrebbe catturare lo stesso crash, portando potenzialmente a report duplicati su piattaforme diverse a meno che non siano configurate per lavorare insieme perfettamente.
2. Interoperabilità SDK: la maggior parte degli strumenti di reporting degli arresti anomali sono progettati per funzionare con altri quadri concapando i gestori di eccezioni non insegnate. Ad esempio, New Relic può incatenare i gestori di eccezioni precedenti se è già registrato un altro framework [1]. Ciò significa che più SDK possono coesistere e segnalare gli arresti anomali, ma l'ordine di inizializzazione potrebbe influire su quale SDK cattura prima l'incidente.
3. Complessità di configurazione: l'integrazione di più SDK di report di crash richiede un'attenta configurazione per assicurarsi che lavorino insieme in modo efficace. Gli sviluppatori devono considerare come ogni SDK gestisce gli arresti anomali, sia che supportino i rapporti differiti e su come interagiscono con altri framework. Ad esempio, Firebase Crashlytics e Dynatrace possono essere usati insieme, ma assicurarsi che non interferiscano l'uno con l'altro è cruciale [2].
4. Coerenza dei dati: i report differiti potrebbero portare a incoerenze se SDK diversi gestiscono arresti anomali in momenti diversi. Ad esempio, un SDK potrebbe segnalare immediatamente un incidente, mentre un altro attende fino al riavvio dell'app. Ciò potrebbe complicare l'analisi dei dati di arresto anomalo su piattaforme diverse.
5. Debug di sfide: quando si utilizza più SDK con segnalazioni differite, gli arresti di debug possono diventare più complessi. Gli sviluppatori devono garantire che ogni SDK sia configurato correttamente per acquisire e segnalare gli arresti anomali, il che può essere impegnativo quando si tratta di caricamenti differiti.
In sintesi, il report di crash differito può aggiungere complessità all'integrazione di SDK di report di crash multipli, che richiedono un'attenta configurazione per garantire un'interazione senza soluzione di continuità e un reporting coerente dei dati. Gli sviluppatori devono considerare come ogni SDK gestisce gli arresti anomali e come interagiscono con altri framework per massimizzare i benefici della segnalazione degli incidenti.
Citazioni:[1] https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile-android/install-configure/android-agent-crash-reporting/
[2] https://community.dynatrace.com/t5/real-user-monitoring/multiple-unique-id-and-crash-details/m-p/163207
[3] https://trangotech.com/mobile/glossary/crash-reporting/
[4] https://stackoverflow.com/questions/78771698/crash-reporting-tool-which-differentiate-crash-from-my-sdk-and-client-app-in-and
[5] https://stackoverflow.com/questions/10755278/use-multiple-crash-reporter-on-ios
[6] https://docs.omniverse.nvidia.com/kit/docs/carbonite/latest/docs/crashreporter.html
[7] https://firebase.google.com/docs/crashlytics/get-started
[8] https://firebase.google.com/docs/crashlytics/customize-crash-reports
[9] https://forum.sentry.io/t/flutter-ios-sentry-cocoa-sdk-not-reporting-all-crashes/11082
[10] https://firebase.google.com/docs/crashlytics
[11] https://forum.sentry.io/t/native-crash-not-reported-to-sentry-but-other-platform/12077
[12] https://raygun.com/learn/the-complete-guide-to-error-monitoring-and-crash-reporting