Skip to main content

مقدمة

يلتقط 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، وما شابه.
لا يمكن للعطل إجراء استدعاء شبكة بشكل موثوق — فالعملية (process) تكون بصدد الإنهاء — لذا يُكتب التقرير إلى القرص بشكل متزامن (synchronous) لحظة العطل، ثم يُرسَل تلقائياً في المرة التالية لتشغيل تطبيقك، مصنَّفاً كـ type: .crash, severity: .critical. لا تحتاج لفعل أي شيء لاستلامه؛ سيظهر في لوحة التحكم عند التشغيل التالي. لتعطيل هذه الميزة (مثلاً إذا كان تطبيقك يملك بالفعل نظام تتبع أعطال خاصاً به وتريد فقط استدعاءات throwError اليدوية):
يتم ترميز أسماء الدوال في تتبّع المكدس (symbolication) باستخدام رموز التصحيح (debug symbols) الخاصة بالتطبيق نفسه لحظة العطل، لذا قد يُظهر إصدار Release الذي أُزيلت منه هذه الرموز عناوين ذاكرة بدلاً من أسماء الدوال في بعض الأطر — هذه خاصية طبيعية للإبلاغ الأصلي (native) عن الأعطال، وليست خللاً في الـ SDK.

تحقّق من التكامل

أرسل خطأً تجريبياً للتأكّد من أن كل شيء يعمل:
ثم افتح لوحة التحكم — يجب أن يظهر الخطأ خلال ثوانٍ.