Sử dụng đồng thời nhiều SDK báo cáo sự cố với MVVMcross có thể phức tạp và không phải lúc nào cũng được khuyến nghị, đặc biệt là trên iOS. Đây là một tổng quan chi tiết:
Cân nhắc chung
1. Giới hạn iOS: Trên iOS, sử dụng nhiều SDK báo cáo sự cố thường không được khuyến nghị. Điều này là do iOS xử lý các ngoại lệ và tín hiệu theo cách không đảm bảo tất cả các phóng viên sự cố sẽ bắt được tất cả các ngoại lệ và tín hiệu, có khả năng dẫn đến các sự cố bị bỏ lỡ [8]. Tuy nhiên, một số nhà phát triển đã sử dụng thành công nhiều phóng viên sự cố như Testflight và Crashlytics cùng nhau, nhưng điều này đòi hỏi phải thiết lập cẩn thận [4].
2. Tính linh hoạt của Android: Trên Android, đồng thời sử dụng nhiều SDK báo cáo sự cố. Tuy nhiên, điều quan trọng là đảm bảo rằng mỗi SDK được khởi tạo theo đúng thứ tự để tránh xung đột. Ví dụ: Instabug nên được khởi tạo sau các phóng viên sự cố khác [8].
Tích hợp MVVMCROSS
Khi tích hợp báo cáo sự cố SDK với MVVMcross, bạn cần xem xét cách mỗi SDK xử lý các ngoại lệ chưa được thực hiện và cách chúng tương tác với khung MVVMCROSS.
- Xử lý ngoại lệ: Bản thân MVVMcross không cung cấp báo cáo sự cố tích hợp. Bạn sẽ cần tích hợp SDK của bên thứ ba. Khi sử dụng nhiều SDK, đảm bảo rằng chúng được cấu hình để xử lý các ngoại lệ một cách chính xác mà không can thiệp vào nhau.
- Thiết lập dự án cốt lõi: Trong dự án lõi MVVMcross của bạn, bạn thường sẽ không xử lý báo cáo sự cố trực tiếp. Thay vào đó, bạn sẽ tích hợp báo cáo sự cố trong các dự án dành riêng cho nền tảng (ví dụ: iOS và Android). Tuy nhiên, bạn có thể muốn tập trung logic xử lý lỗi trong dự án cốt lõi để được thống nhất trên các nền tảng.
Báo cáo sự cố Tùy chọn SDK
Một số SDK báo cáo sự cố có thể được sử dụng với MVVMCROSS:
- Trung tâm ứng dụng: Cung cấp báo cáo và phân tích sự cố toàn diện cho cả iOS và Android. Thật dễ dàng để tích hợp với các dự án Xamarin và MVVMcross [5].
- New Relic: Cung cấp báo cáo sự cố mạnh mẽ và giám sát hiệu suất. Nó hỗ trợ Android và có thể làm việc cùng với các khung báo cáo sự cố khác [2] [10].
- Instabug: Cung cấp báo cáo sự cố chi tiết và các công cụ phản hồi của người dùng. Nó có thể được sử dụng trên cả iOS và Android, nhưng với những hạn chế được ghi nhận trên iOS [8].
Các bước thực hiện
Để thực hiện nhiều SDK báo cáo sự cố với MVVMCROSS:
1. Chọn SDK: Chọn SDK bạn muốn sử dụng dựa trên các yêu cầu về nền tảng và tính năng của bạn.
2. Khởi tạo SDK: Đảm bảo mỗi SDK được khởi tạo chính xác trong các dự án dành riêng cho nền tảng. Trên Android, khởi tạo chúng theo đúng thứ tự để tránh xung đột.
3. Xử lý các ngoại lệ: Định cấu hình mỗi SDK để xử lý các ngoại lệ chưa được thực hiện. Nếu sử dụng nhiều SDK, hãy đảm bảo chúng được thiết lập để làm việc cùng nhau mà không can thiệp vào việc xử lý ngoại lệ của nhau.
4. Kiểm tra kỹ lưỡng: Kiểm tra kỹ lưỡng ứng dụng của bạn để đảm bảo rằng tất cả các SDK báo cáo sự cố đang hoạt động như mong đợi và không gây ra bất kỳ xung đột nào.
Tóm lại, mặc dù về mặt kỹ thuật có thể sử dụng nhiều SDK báo cáo sự cố với MVVMcross, nhưng nó đòi hỏi phải thiết lập và thử nghiệm cẩn thận, đặc biệt là trên iOS. Trên Android, nó đơn giản hơn nhưng vẫn đòi hỏi sự chú ý đến thứ tự khởi tạo.
Trích dẫn:[1] https://stackoverflow.com/questions/19464339/xamarin-mvvmcross-and-crashreporting
.
[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-other-crash-reporters
[9] https://www.appdome.com/how-tos
.
[11] https://support.google.com/googleplay/android-developer/answer/12246095?HL
[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