Использование нескольких SDK, сообщающих о сбоях, одновременно с MVVMcross может быть сложным и не всегда рекомендуется, особенно на iOS. Вот подробный обзор:
Общие соображения
1. Ограничения iOS: на iOS с использованием многочисленных SDKS с аварийными отчетами обычно не рекомендуется. Это связано с тем, что iOS обрабатывает исключения и сигналы таким образом, чтобы не гарантировали, что все репортеры с аварии поймают все исключения и сигналы, что может привести к пропущенным сбоям [8]. Тем не менее, некоторые разработчики успешно использовали несколько репортеров, таких как Testflight и Crashlytics вместе, но это требует тщательной настройки [4].
2. Гибкость Android: на Android более целесообразно использовать несколько SDKS, сообщающих о сбоях, одновременно. Тем не менее, очень важно, чтобы каждый SDK был инициализирован в правильном порядке, чтобы избежать конфликтов. Например, Instabug должен быть инициализирован после других репортеров с аварией [8].
MVVMcross Integration
При интеграции SDKS, сообщающих о SDK с MVVMcross, вам необходимо рассмотреть, как каждый SDK обрабатывает непредучанные исключения и как они взаимодействуют с структурой MVVMcross.
- Обработка исключений: сама MVVMcross не обеспечивает встроенных отчетов о аварии. Вам нужно будет интегрировать стороннюю SDK. При использовании нескольких SDK убедитесь, что они настроены для правильного обработки исключений, не мешая друг другу.
- Основная настройка проекта: в вашем проекте MVVMcross Core вы, как правило, не обращаются к отчетам о сбоях напрямую. Вместо этого вы интегрируете отчеты о сбоях в проекты для конкретной платформы (например, iOS и Android). Тем не менее, вы можете централизовать логику обработки ошибок в основном проекте для последовательности между платформами.
Параметры SDK отчетность
Несколько сбоев, сообщающих о SDK, можно использовать с MVVMcross:
- App Center: обеспечивает комплексную отчетность по сбою и аналитику как для iOS, так и для Android. Легко интегрироваться с проектами Xamarin и MVVMcross [5].
- New Relic: предлагает надежные отчеты о сбоях и мониторинг производительности. Он поддерживает Android и может работать вместе с другими фреймворками отчетов о сбоях [2] [10].
- Instabug: предоставляет подробные отчеты о сбоях и инструменты обратной связи с пользователями. Его можно использовать как на iOS, так и на Android, но с известными ограничениями на iOS [8].
Шаги реализации
Для реализации нескольких SDKS с аварийными отчетами с MVVMcross:
1. Выберите SDK: выберите SDK, которые вы хотите использовать, на основе вашей платформы и требований к функциям.
2. Инициализировать SDK: убедитесь, что каждый SDK правильно инициализируется в проектах, специфичных для платформы. На Android инициализируйте их в правильном порядке, чтобы избежать конфликтов.
3. Обработка исключений: Настройте каждый SDK, чтобы обрабатывать исключения с помощью Uncaught. При использовании нескольких SDK убедитесь, что они настроены на работу вместе, не мешая обработке исключений друг друга.
4. Проверьте тщательно: тщательно протестируйте свое приложение, чтобы убедиться, что все SDK, отзывы, работающие в аварии, не вызывают каких -либо конфликтов.
Таким образом, хотя технически возможно использовать многочисленные SDK, сообщающие о сбоях с 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-instabug-crash-reporting-tool-in-parallel-with-ther-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-of-ios-rash-reports-with-lldb