يمكن أن يكون استخدام SDKs المتعددة في وقت واحد مع MVVMCROSS معقدًا وقد لا يوصى به دائمًا ، خاصة على iOS. إليك نظرة عامة مفصلة:
اعتبارات عامة
1. قيود iOS: على iOS ، لا ينصح بشكل عام باستخدام SDKs التقارير المتعددة. وذلك لأن iOS يتعامل مع الاستثناءات والإشارات بطريقة لا تضمن أن جميع مراسلي التصادم سوف يلتقطون جميع الاستثناءات والإشارات ، مما يؤدي إلى حدوث حوادث ضائعة [8]. ومع ذلك ، فقد استخدم بعض المطورين بنجاح العديد من مراسلي التعطل مثل TestFlight و Crashlytics معًا ، لكن هذا يتطلب إعدادًا دقيقًا [4].
2. مرونة Android: على Android ، من الممكن استخدام SDKs المتعددة في وقت واحد. ومع ذلك ، من الأهمية بمكان التأكد من تهيئة كل SDK بالترتيب الصحيح لتجنب النزاعات. على سبيل المثال ، يجب تهيئة Instabug بعد مراسلي تحطم آخرين [8].
تكامل MVVMCROSS
عند دمج تصادم الإبلاغ عن SDKs مع MVVMCROSS ، تحتاج إلى التفكير في كيفية تعامل كل SDK مع استثناءات غير معلوم وكيفية تفاعلها مع إطار MVVMCROSS.
- معالجة الاستثناءات: لا يوفر MVVMcross نفسها تقارير تصادم مدمجة. ستحتاج إلى دمج SDK من طرف ثالث. عند استخدام SDKs متعددة ، تأكد من تكوينها للتعامل مع الاستثناءات بشكل صحيح دون التدخل مع بعضها البعض.
- إعداد المشروع الأساسي: في مشروع MVVMcross Core الخاص بك ، لن تتعامل عادةً مع التقارير التقديرية مباشرة. بدلاً من ذلك ، ستقوم بدمج تقارير التصادم في المشاريع الخاصة بالمنصة (على سبيل المثال ، iOS و Android). ومع ذلك ، قد ترغب في تركيز منطق معالجة الأخطاء في المشروع الأساسي للتناسق عبر المنصات.
Crash Reporting Options SDK
يمكن استخدام العديد من SDKs لإبلاغ Crash مع MVVMCROSS:
- مركز التطبيق: يوفر تقارير وتحليلات شاملة للتصادم لكل من iOS و Android. من السهل الاندماج مع مشاريع Xamarin و MVVMcross [5].
- New Relic: يقدم تقارير تصادم قوية ومراقبة الأداء. وهو يدعم Android ويمكنه العمل جنبًا إلى جنب مع أطر الإبلاغ الأخرى [2] [10].
- Instabug: يوفر تقارير تصادم مفصلة وأدوات ملاحظات المستخدم. يمكن استخدامه على كل من iOS و Android ، ولكن مع القيود المذكورة على iOS [8].
خطوات التنفيذ
لتنفيذ العديد من التقارير SDKs مع MVVMCROSS:
1. اختر SDKs: حدد SDKs التي تريد استخدامها بناءً على متطلبات النظام الأساسي والميزات الخاصة بك.
2. تهيئة SDKs: تأكد من تهيئة كل SDK بشكل صحيح في المشاريع الخاصة بالنظام الأساسي. على Android ، قم بتهيئتها بالترتيب الصحيح لتجنب النزاعات.
3. التعامل مع الاستثناءات: تكوين كل SDK للتعامل مع الاستثناءات غير المطلوبة. إذا كنت تستخدم SDKs متعددة ، تأكد من إعدادها للعمل معًا دون التدخل في معالجة استثناء بعضها البعض.
4. الاختبار بدقة: اختبر تطبيقك بدقة للتأكد من أن جميع SDKs التقارير التي تعمل على التقارير تعمل كما هو متوقع ولا تسبب أي تعارضات.
باختصار ، على الرغم من أنه من الممكن تقنيًا استخدام SDKs متعددة من التقارير مع MVVMCROSS ، فإنه يتطلب إعداد واختبار دقيق ، وخاصة على iOS. على Android ، إنه أكثر وضوحًا ولكن لا يزال يتطلب الاهتمام بترتيب التهيئة.
الاستشهادات:[1] https://stackoverflow.com/questions/19464339/xamarin-mvmcross-and-crashreporting
[2] https://docs.newrelic.com/docs/mobile-monitoring/new-mobile-droid/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-DROID-10-0-Q-MAINACTIVAL-EXCEPTION-CRASH-ON-SETCONTENTVIEW/59558389
[7] https://github.com/mvvmcross/mvvmcross/issues/4295
[8] https://help.instabug.com/en/articles/2102240-can-use-the-instabug-crash-reporting-tool-in-parald-with-to-crash-reporters
[9]
[10]
[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-neports-with-lldb