مقدمة
يلتقط Lerix الأخطاء والأعطال من تطبيق iOS الأصلي (native) الخاص بك لتتمكّن من تصحيح المشاكل بشكل أسرع. بعد إتمام تثبيت iOS، استخدمLerix.throwError لإرسال أخطاء مخصّصة أو استثناءات ملتقطة إلى لوحة التحكم — أما الأعطال غير الملتقطة فتُلتقط تلقائياً، دون الحاجة لأي كود إضافي.
تأكّد من تهيئة الـ SDK عبر
Lerix.initialize() قبل الإبلاغ عن الأخطاء.الإبلاغ عن خطأ
استخدمLerix.throwError للإبلاغ عن خطأ يدوياً. هذا مفيد عندما تلتقط خطأً بنفسك وتريد إرساله إلى Lerix مع سياق إضافي.
المعاملات (Parameters)
قيم BugType
قيم BugSeverity
الالتقاط التلقائي للأعطال
يُثبّتLerix.initialize() معالج أعطال (crash handler) تلقائياً، ويغطّي كلاً من:
- الاستثناءات غير الملتقطة (
NSException— مثل استدعاء selector غير مُنفَّذ، أو عملية غير صالحة على مجموعة بيانات). - الإشارات القاتلة (fatal signals) (
SIGABRT،SIGILL،SIGSEGV،SIGFPE،SIGBUS،SIGTRAP) — وهذا ما يلتقط أعطال Swift الشائعة أثناء التشغيل: فكّ التغليف الإجباري (force-unwrap) لقيمةnil، أو تجاوز فهرس مصفوفة، أو فشلprecondition، وما شابه.
type: .crash, severity: .critical. لا تحتاج لفعل أي شيء لاستلامه؛ سيظهر في لوحة التحكم عند التشغيل التالي.
لتعطيل هذه الميزة (مثلاً إذا كان تطبيقك يملك بالفعل نظام تتبع أعطال خاصاً به وتريد فقط استدعاءات throwError اليدوية):
يتم ترميز أسماء الدوال في تتبّع المكدس (symbolication) باستخدام رموز التصحيح (debug symbols) الخاصة بالتطبيق نفسه لحظة العطل، لذا قد يُظهر إصدار Release الذي أُزيلت منه هذه الرموز عناوين ذاكرة بدلاً من أسماء الدوال في بعض الأطر — هذه خاصية طبيعية للإبلاغ الأصلي (native) عن الأعطال، وليست خللاً في الـ SDK.