Používanie viacerých hlásení SDK súčasne s MVVMCross môže byť zložité a nemusí sa vždy odporučiť, najmä na iOS. Tu je podrobný prehľad:
Všeobecné úvahy
1. Obmedzenia iOS: Na iOS sa vo všeobecnosti neodporúča používanie viacerých hlásení SDK. Dôvodom je skutočnosť, že iOS sa zaoberá výnimkami a signálmi spôsobom, ktorý nezaručuje, že všetci reportéri havárií zachytia všetky výnimky a signály, čo potenciálne vedie k zmeškaným haváriám [8]. Niektorí vývojári však úspešne použili viacero reportérov havárie, ako je TestFlight a Crashlytics, ale vyžaduje si to starostlivé nastavenie [4].
2. Flexibilita Android: V systéme Android je možné súčasne používať SDK viacerých hlásení. Je však nevyhnutné zabezpečiť, aby sa každý súbor SDK inicializoval v správnom poradí, aby sa predišlo konfliktom. Napríklad Instabug by sa mal inicializovať po ďalších reportéri havárie [8].
MVVMCross integrácia
Pri integrácii SDK hlásenia havárie s MVVMCross musíte zvážiť, ako každý súbor SDK spracováva nevyužité výnimky a ako interagujú s rámcom MVVMCross.
- Výnimka: Samotný MVVMCross neposkytuje vstavané hlásenie havárie. Budete musieť integrovať súpravu SDK tretích strán. Pri použití viacerých SDK sa uistite, že sú nakonfigurované tak, aby správne zvládli výnimky bez toho, aby sa navzájom zasahovali.
- Nastavenie základného projektu: Vo vašom projekte MVVMCross Core sa zvyčajne nezvládnete priamo. Namiesto toho budete integrovať správy o haváriách do projektov špecifických pre platformu (napr. IOS a Android). Možno však budete chcieť centralizovať logiku spracovania chýb v hlavnom projekte pre konzistentnosť na platformách.
Crash Reporting SDK Možnosti
S MVVMCross je možné použiť niekoľko hlásení SDK:
- Centrum aplikácií: Poskytuje komplexné hlásenia a analytiku havárie pre iOS aj Android. Je ľahké integrovať sa s projektmi Xamarin a MVVMCross [5].
- Nová pamiatka: ponúka robustné hlásenie havárie a monitorovanie výkonnosti. Podporuje Android a môže pracovať spolu s ďalšími rámcami hlásenia havárie [2] [10].
- Instabug: Poskytuje podrobné správy o haváriách a nástroje spätnej väzby od používateľov. Môže sa použiť na iOS aj Android, ale s uvedenými obmedzeniami na iOS [8].
Implementačné kroky
Ak chcete implementovať viacnásobné súpravy hlásení o havárii s MVVMCross:
1. Vyberte SDKS: Vyberte SDK, ktoré chcete použiť na základe vašej platformy a požiadaviek na funkcie.
2. Inicializujte SDK: Uistite sa, že každá súprava SDK je správne inicializovaná v projektoch špecifických pre platformu. V systéme Android ich inicializujte v správnom poradí, aby sa predišlo konfliktom.
3. Zvládajte výnimky: Nakonfigurujte každú súpravu na zvládnutie nevyužitých výnimiek. Ak používate viacero SDK, uistite sa, že sú nastavené tak, aby spolupracovali bez toho, aby sa navzájom zasahovali do spracovania výnimky.
4. Dôkladne otestujte: Svoju aplikáciu dôkladne otestujte, aby ste sa uistili, že všetky súpravy na hlásenie havárií fungujú podľa očakávania a nespôsobujú žiadne konflikty.
Stručne povedané, hoci je technicky možné používať viacero súprav SDK hlásenia s MVVMCross, vyžaduje starostlivé nastavenie a testovanie, najmä na iOS. V systéme Android je to jednoduchšie, ale stále si vyžaduje pozornosť inicializačnému poriadku.
Citácie:[1] https://stackoverflow.com/questions/19464339/xamarin-mvvmcross-and-crashreporting
[2] https://docs.newrelic.com/docs/mobile-monitoring/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
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-reporting-tool-in-paralle-with-with-other-crash-reporters
[9] https://www.appdome.com/how-to/mobile-app-security/mobile-data-encryption/appdome-integrates-crash-reporting-sdk/
[10] https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile-android/install-configure/android-agent-native-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/trueshooting/xamarin
[14] https://www.guardsquare.com/blog/making-the-most-out-tof--ios-crash-reports-with-lldb