Naudojant kelis avarijos ataskaitas SDK tuo pačiu metu su MVVMCross gali būti sudėtinga ir ne visada gali būti rekomenduojama, ypač „iOS“. Čia yra išsami apžvalga:
Bendrieji aspektai
1. „IOS“ apribojimai: „iOS“ paprastai nerekomenduojama naudoti kelių avarijų ataskaitų teikiančių SDK. Taip yra todėl, kad „iOS“ tvarko išimtis ir signalus taip, kad negarantuoja, kad visi „Crash Reporters“ sugautų visas išimtis ir signalus, o tai gali sukelti praleistą avariją [8]. Tačiau kai kurie kūrėjai sėkmingai naudojo kelis „Crash Reporters“, tokius kaip „TestFlight“ ir „Crashlytics“, tačiau tam reikia kruopštaus nustatymo [4].
2. „Android“ lankstumas: „Android“ - labiau įmanoma tuo pačiu metu naudoti kelis „Crash Reporting SDK“ SDK. Tačiau labai svarbu užtikrinti, kad kiekvienas SDK būtų inicializuotas teisinga tvarka, kad būtų išvengta konfliktų. Pavyzdžiui, instabug turėtų būti inicijuotas po kitų avarijos žurnalistų [8].
MVVMCROSS integracija
Integruojant „Crash Reporting SDK“ su „MVVMCross“, turite apsvarstyti, kaip kiekvienas SDK tvarko neapgalvotas išimtis ir kaip jie sąveikauja su MVVMCross sistema.
- Išimčių tvarkymas: Pats „MvVMCross“ nepateikia įmontuotos avarijos ataskaitų. Turėsite integruoti trečiosios šalies SDK. Naudodamiesi keliais SDK, įsitikinkite, kad jie yra sukonfigūruoti tinkamai tvarkyti išimtis, nesikišant į vienas kitą.
- Pagrindinė projekto sąranka: „MVVMCross“ pagrindiniame projekte paprastai nesiruošiate tiesiogiai tvarkyti avarijų ataskaitų. Vietoj to, jūs integruosite „Crash“ ataskaitas į konkrečios platformos projektus (pvz., „IOS“ ir „Android“). Tačiau galbūt norėsite centralizuoti klaidų tvarkymo logiką pagrindiniame projekte, skirtą nuoseklumui tarp platformų.
Avarijos ataskaitų SDK parinktys
Su MVVMCross gali būti naudojami kelios „Crash Reporting SDK“:
- Programos centras: pateikia išsamią „iOS“ ir „Android“ avarijų ataskaitas ir analizę. Nesunku integruoti su „Xamarin“ ir „MVVMCross“ projektais [5].
- Nauja relikvija: siūlo tvirtą ataskaitų apie avariją ir stebėjimą. Jis palaiko „Android“ ir gali veikti kartu su kitomis „Crash Reporting Frameworks“ [2] [10].
- „InStabug“: pateikia išsamias avarijos ataskaitas ir vartotojo atsiliepimų įrankius. Jis gali būti naudojamas tiek „iOS“, tiek „Android“, tačiau turint pažymėtus „iOS“ apribojimus [8].
Įgyvendinimo veiksmai
Norėdami įdiegti kelis avarijos ataskaitas SDK su MVVMCross:
1. Pasirinkite SDK: pasirinkite SDK, kuriuos norite naudoti pagal savo platformą ir funkcijų reikalavimus.
2. Inicijuokite SDK: Įsitikinkite, kad kiekvienas SDK yra teisingai inicializuotas konkrečių platformos projektuose. „Android“ inicijuokite juos teisinga tvarka, kad išvengtumėte konfliktų.
3. Tvarkykite išimtis: sukonfigūruokite kiekvieną SDK, kad būtų galima tvarkyti neapgalvotas išimtis. Jei naudojate kelis SDK, įsitikinkite, kad jie yra sukurti kartu dirbti kartu, nesikišdami į vienas kito išimčių tvarkymą.
4. Išbandykite kruopščiai: kruopščiai išbandykite savo programą, kad įsitikintumėte, jog visi avarijos ataskaitų teikiantys SDK veikia taip, kaip tikėtasi, ir nesukelia jokių konfliktų.
Apibendrinant galima pasakyti, kad nors techniškai įmanoma naudoti kelis „Crash Reporting SDK“ su MVVMCross, reikia kruopščiai nustatyti ir testavimo, ypač „iOS“. „Android“ tai yra tiesiau, tačiau vis tiek reikia atkreipti dėmesį į inicijavimo tvarką.
Citatos:[1] https://stackoverflow.com/questions/19464339/xamarin-mvvmcross-and-crashreporting
[2] https://docs.newrelic.com/docs/mobile-monitining/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-reporting-tool-in-parallel-with-ther-crash-reporters
[9] https://www.appdome.com/how-to/mobile-app-security/mobile-data-encrypping/appdome-integres-crash-reporting-sdk/
[10] https://docs.newrelic.com/docs/mobile-monitining/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/troubleShooting/xamarin
[14] https://www.guardsquare.com/blog/making-the -t-out-o-fi-ios-crash-reports-with-lldb