Η χρήση πολλαπλών αναφορών Crash SDKS ταυτόχρονα με το MVVMCROSS μπορεί να είναι πολύπλοκη και μπορεί να μην συνιστάται πάντοτε, ειδικά σε iOS. Ακολουθεί μια λεπτομερής επισκόπηση:
Γενικές εκτιμήσεις
1. Περιορισμοί iOS: Στο iOS, χρησιμοποιώντας πολλαπλές αναφορές Crash SDKs γενικά δεν συνιστάται. Αυτό οφείλεται στο γεγονός ότι το iOS χειρίζεται εξαιρέσεις και σήματα με τρόπο που δεν εγγυάται ότι όλοι οι δημοσιογράφοι συντριβής θα πιάσουν όλες τις εξαιρέσεις και τα σήματα, ενδεχομένως οδηγώντας σε χαμένες συντριβές [8]. Ωστόσο, ορισμένοι προγραμματιστές έχουν χρησιμοποιήσει επιτυχώς πολλούς δημοσιογράφους συντριβής όπως το TestFlight και το Crashlytics μαζί, αλλά αυτό απαιτεί προσεκτική εγκατάσταση [4].
2. Android Ευελιξία: Στο Android, είναι πιο εφικτό να χρησιμοποιηθούν ταυτόχρονα πολλαπλών αναφορών συντριβής SDKs. Ωστόσο, είναι σημαντικό να διασφαλιστεί ότι κάθε SDK αρχικοποιείται με τη σωστή σειρά για αποφυγή συγκρούσεων. Για παράδειγμα, το Instabug θα πρέπει να αρχικοποιηθεί μετά από άλλους δημοσιογράφους συντριβής [8].
mvvmcross ενσωμάτωση
Κατά την ενσωμάτωση των SDKs Crash με το MVVMCROSS, πρέπει να εξετάσετε πώς κάθε SDK χειρίζεται τις εξαιρέσεις που δεν διαθέτουν και πώς αλληλεπιδρούν με το πλαίσιο MVVMCROSS.
- Χειρισμός εξαίρεσης: Το ίδιο το MVVMCross δεν παρέχει ενσωματωμένη αναφορά συντριβής. Θα χρειαστεί να ενσωματώσετε ένα SDK τρίτου μέρους. Όταν χρησιμοποιείτε πολλαπλά SDK, βεβαιωθείτε ότι έχουν ρυθμιστεί ώστε να χειρίζονται σωστά τις εξαιρέσεις χωρίς να παρεμβαίνουν μεταξύ τους.
- Βασική ρύθμιση έργου: Στο βασικό έργο MVVMCross, συνήθως δεν θα χειριστείτε απευθείας την αναφορά συντριβής. Αντ 'αυτού, θα ενσωματώσετε την αναφορά συντριβής σε έργα που σχετίζονται με την πλατφόρμα (π.χ. iOS και Android). Ωστόσο, ίσως θελήσετε να συγκεντρώσετε τη λογική χειρισμού σφαλμάτων στο βασικό έργο για συνέπεια σε όλες τις πλατφόρμες.
Crash Reporting SDK Επιλογές
Αρκετές αναφορές SDKs Crash μπορούν να χρησιμοποιηθούν με MVVMCROSS:
- Κέντρο εφαρμογών: Παρέχει ολοκληρωμένες αναφορές και αναλύσεις σύγκρουσης τόσο για το iOS όσο και για το Android. Είναι εύκολο να ενσωματωθεί με έργα Xamarin και MVVMCross [5].
- New Relic: Προσφέρει ισχυρή αναφορά και παρακολούθηση απόδοσης. Υποστηρίζει το Android και μπορεί να εργαστεί μαζί με άλλα πλαίσια αναφοράς σύγκρουσης [2] [10].
- Instabug: παρέχει λεπτομερείς αναφορές σύγκρουσης και εργαλεία ανατροφοδότησης χρηστών. Μπορεί να χρησιμοποιηθεί τόσο στο iOS όσο και στο Android, αλλά με τους γνωστούς περιορισμούς στο iOS [8].
Βήματα εφαρμογής
Για την εφαρμογή πολλαπλών αναφορών Crash SDK με MVVMCROSS:
1. Επιλέξτε SDKS: Επιλέξτε τα SDK που θέλετε να χρησιμοποιήσετε με βάση τις απαιτήσεις της πλατφόρμας και των χαρακτηριστικών σας.
2. Αρχικοποιήστε SDKs: Βεβαιωθείτε ότι κάθε SDK αρχικοποιείται σωστά στα έργα που αφορούν συγκεκριμένα την πλατφόρμα. Στο Android, αρχικοποιήστε τα με τη σωστή σειρά για να αποφύγετε τις συγκρούσεις.
3. Χειριστείτε εξαιρέσεις: Ρυθμίστε κάθε SDK για να χειριστείτε τις εξαιρέσεις που δεν αντιμετωπίζουν. Εάν χρησιμοποιείτε πολλαπλά SDK, βεβαιωθείτε ότι έχουν συσταθεί για να συνεργαστούν χωρίς να παρεμβαίνουν στο χειρισμό εξαιρέσεων του άλλου.
4. Δοκιμάστε διεξοδικά: Δοκιμάστε λεπτομερώς την εφαρμογή σας για να βεβαιωθείτε ότι όλες οι αναφορές SDKs συντριβής λειτουργούν όπως αναμένεται και δεν προκαλούν συγκρούσεις.
Συνοπτικά, ενώ είναι τεχνικά δυνατή η χρήση πολλαπλών SDKs Crash αναφοράς με MVVMCross, απαιτεί προσεκτική εγκατάσταση και δοκιμή, ειδικά σε iOS. Στο Android, είναι πιο απλό, αλλά απαιτεί ακόμα προσοχή στην σειρά αρχικοποίησης.
Αναφορές:[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
[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-bug-crash-reporting-tool-in-parallel-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/troubleshooting/xamarin
[14] https://www.guardsquare.com/blog/making-the-most-out-of-ios-crash-reports-with-lldb