การใช้ SDKs การรายงานข้อผิดพลาดหลายครั้งพร้อมกันกับ MVVMcross อาจซับซ้อนและอาจไม่แนะนำเสมอไปโดยเฉพาะบน iOS นี่คือภาพรวมโดยละเอียด:
ข้อควรพิจารณาทั่วไป
1. ข้อ จำกัด ของ iOS: บน iOS โดยใช้การรายงานข้อผิดพลาดหลายครั้งโดยทั่วไป SDK ไม่แนะนำ นี่เป็นเพราะ iOS จัดการกับข้อยกเว้นและสัญญาณในลักษณะที่ไม่รับประกันว่านักข่าวที่ผิดพลาดทั้งหมดจะจับข้อยกเว้นและสัญญาณทั้งหมดซึ่งอาจนำไปสู่การล่มที่ไม่ได้รับ [8] อย่างไรก็ตามนักพัฒนาบางคนประสบความสำเร็จในการใช้นักข่าวผิดพลาดหลายคนเช่น TestFlight และ Crashlytics ด้วยกัน แต่สิ่งนี้ต้องใช้การตั้งค่าอย่างระมัดระวัง [4]
2. ความยืดหยุ่นของ Android: บน Android มีความเป็นไปได้มากกว่าที่จะใช้ SDKs รายงานความผิดพลาดหลายครั้งพร้อมกัน อย่างไรก็ตามมันเป็นสิ่งสำคัญเพื่อให้แน่ใจว่าแต่ละ SDK จะเริ่มต้นในลำดับที่ถูกต้องเพื่อหลีกเลี่ยงความขัดแย้ง ตัวอย่างเช่น Instabug ควรเริ่มต้นหลังจากนักข่าวคนอื่น ๆ [8]
การรวม MVVMCROSS
เมื่อรวมการรายงานความผิดพลาด SDKs กับ MVVMCROSS คุณต้องพิจารณาว่า SDK แต่ละตัวจัดการข้อยกเว้นที่ไม่ถูกต้องอย่างไรและวิธีที่พวกเขาโต้ตอบกับกรอบ MVVMCROSS
- การจัดการข้อยกเว้น: MVVMCROSS เองไม่ได้ให้การรายงานการชนในตัว คุณจะต้องรวม SDK ของบุคคลที่สามเข้าด้วยกัน เมื่อใช้ SDK หลายตัวตรวจสอบให้แน่ใจว่าได้รับการกำหนดค่าให้จัดการข้อยกเว้นอย่างถูกต้องโดยไม่รบกวนซึ่งกันและกัน
- การตั้งค่าโครงการหลัก: ในโครงการ MVVMcross Core ของคุณโดยทั่วไปคุณจะไม่จัดการกับการรายงานความผิดพลาดโดยตรง แต่คุณจะรวมการรายงานความผิดพลาดในโครงการเฉพาะแพลตฟอร์ม (เช่น iOS และ Android) อย่างไรก็ตามคุณอาจต้องการรวมกลุ่มตรรกะการจัดการข้อผิดพลาดในโครงการหลักเพื่อความสอดคล้องระหว่างแพลตฟอร์ม
ตัวเลือกการรายงานข้อผิดพลาด SDK
การรายงานความผิดพลาดหลายครั้ง SDK สามารถใช้กับ MVVMCROSS:
- ศูนย์แอพ: ให้การรายงานความผิดพลาดที่ครอบคลุมและการวิเคราะห์สำหรับทั้ง iOS และ Android เป็นเรื่องง่ายที่จะรวมเข้ากับโครงการ Xamarin และ MVVMcross [5]
- ใหม่ของที่ระลึก: เสนอการรายงานความผิดพลาดที่แข็งแกร่งและการตรวจสอบประสิทธิภาพ รองรับ Android และสามารถทำงานร่วมกับกรอบการรายงานความผิดพลาดอื่น ๆ [2] [10]
- Instabug: จัดทำรายงานความผิดพลาดโดยละเอียดและเครื่องมือตอบรับของผู้ใช้ มันสามารถใช้กับทั้ง iOS และ Android แต่มีข้อ จำกัด ที่ระบุไว้ใน iOS [8]
ขั้นตอนการใช้งาน
ในการใช้ SDKs รายงานข้อผิดพลาดหลายรายการด้วย MVVMCROSS:
1. เลือก SDKS: เลือก SDK ที่คุณต้องการใช้ตามข้อกำหนดของแพลตฟอร์มและคุณสมบัติของคุณ
2. เริ่มต้น SDKS: ตรวจสอบให้แน่ใจว่า SDK แต่ละตัวเริ่มต้นอย่างถูกต้องในโครงการเฉพาะแพลตฟอร์ม บน Android เริ่มต้นพวกเขาในลำดับที่ถูกต้องเพื่อหลีกเลี่ยงความขัดแย้ง
3. จัดการข้อยกเว้น: กำหนดค่า SDK แต่ละตัวเพื่อจัดการข้อยกเว้นที่ไม่ถูกต้อง หากใช้ SDK หลายตัวตรวจสอบให้แน่ใจว่าพวกเขาได้รับการตั้งค่าให้ทำงานร่วมกันโดยไม่รบกวนการจัดการข้อยกเว้นของกันและกัน
4. ทดสอบอย่างละเอียด: ทดสอบแอปของคุณอย่างละเอียดเพื่อให้แน่ใจว่าการรายงานความผิดพลาดทั้งหมด SDKs ทำงานตามที่คาดไว้และไม่ก่อให้เกิดความขัดแย้งใด ๆ
โดยสรุปในขณะที่เป็นไปได้ทางเทคนิคที่จะใช้การรายงานความผิดพลาดหลายครั้ง SDKs กับ 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-the-instabug-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-mot-out-o-of-ios-crash-reports-with-lldb