Použití více zpráv o nárazu SDK současně s MVVMCrossem může být složité a nemusí být vždy doporučeno, zejména na iOS. Zde je podrobný přehled:
Obecné úvahy
1. OMEZENÍ IOS: Pokud jde o iOS, používání více zpráv SDK s nárazem se obecně nedoporučuje. Je to proto, že iOS zpracovává výjimky a signály způsobem, který nezaručuje, že všichni reportéři havárií zachytí všechny výjimky a signály, což potenciálně povede ke zmeškaným nehodám [8]. Někteří vývojáři však úspěšně použili více reportérů havárie, jako jsou TestFlight a Crashlytics dohromady, ale to vyžaduje pečlivé nastavení [4].
2. Flexibilita Androidu: Na Androidu je možné použít současně více hlášení o havárii SDK. Je však zásadní zajistit, aby byl každý SDK inicializován ve správném pořadí, aby se zabránilo konfliktům. Například Instabug by měl být inicializován po jiných reportérech havárie [8].
MVVMCross Integration
Při integraci reportingu Crash Reporting SDK s MVVMCross musíte zvážit, jak každá SDK zpracovává bez výjimek a jak interagují s rámcem MVVMCross.
- Manipulace s výjimkami: Samotná MVVMCross neposkytuje vestavěné hlášení havárie. Budete muset integrovat SDK třetích stran. Při používání více SDK se ujistěte, že jsou nakonfigurovány tak, aby správně zvládly výjimky, aniž by navzájem zasahovaly.
- Nastavení jádra projektu: Ve vašem projektu MVVMCross Core obvykle nebudete zpracovávat přímo hlášení havárie. Místo toho budete integrovat zprávy o havárii do projektů specifických pro platformu (např. IOS a Android). Možná však budete chtít centralizovat logiku zpracování chyb v hlavním projektu pro konzistenci napříč platformami.
Reporting Reporting SDK Možnosti
U MVVMCross lze použít několik srážek SDKS:
- App Center: Poskytuje komplexní hlášení a analýzu havárie pro iOS i Android. Je snadné se integrovat do projektů Xamarin a MVVMCROSS [5].
- Nová relikvie: nabízí robustní hlášení a sledování výkonu. Podporuje Android a může pracovat společně s dalšími rámci s nárazovými hlášeními [2] [10].
- Instabug: Poskytuje podrobné zprávy o havárii a nástroje pro zpětnou vazbu uživatelů. Lze jej použít na iOS i Android, ale s známými omezeními pro iOS [8].
Implementační kroky
Implementace více zpráv o havárii SDK s MVVMCross:
1. Vyberte SDK: Vyberte SDK, které chcete použít na základě vaší platformy a požadavků na funkci.
2. inicializace SDK: Zajistěte, aby byl každý SDK správně inicializován v projektech specifických pro platformu. Na Androidu je inicializujte ve správném pořadí, abyste se vyhnuli konfliktům.
3. Zpracování výjimek: Nakonfigurujte každou SDK tak, aby zpracovávala nezaujaté výjimky. Pokud používáte více SDKS, ujistěte se, že jsou nastaveny tak, aby spolupracovaly, aniž by se zasahovaly do manipulace s výjimkou druhého.
4. Test důkladně: Otestování aplikace důkladně vyzkoušejte, aby se zajistilo, že veškeré hlášení o havárii SDK fungují podle očekávání a nezpůsobují žádné konflikty.
Stručně řečeno, i když je technicky možné použít s MVVMCross více sdělovacích zpráv SDKS, vyžaduje pečlivé nastavení a testování, zejména u iOS. Na Androidu je to jednodušší, ale stále vyžaduje pozornost na pořadí inicializace.
Citace:[1] https://stackoverflow.com/questions/19464339/xamarin-mvvmcross-and-crashreporting
[2] https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile-ndroid/install-configure/android-agent-crash-reporting/
[3] https://www.mvvmcross.com/documentation/advanced/mvxnotifyTask
[4] https://stackoverflow.com/questions/10755278/use-multiple-crash-report-on-ios
[5] https://www.youtube.com/watch?v=jr2fe-wan9c
[6] https://stackoverflow.com/questions/59078153/mvvmcross-ndroid-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-reporting-tool-in-parallel-with-other-crash-reportéry
[9] https://www.appdome.com/how-to/mobile-app-security/mobile-data-cryption/appdome-integrates-crash-fortting-sdk/
[10] https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile-ndroid/install-configure/android-agent-rative-crash-reporting/
[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-os-crash-reports-with-lldb