تست اولین کرش در iOS

نحوه شبیه‌سازی کرش آزمایشی، بسته‌شدن برنامه، اجرای مجدد و مشاهده گزارش در داشبورد.

برای اطمینان از صحت ثبت سیگنال‌های POSIX و بازیابی خطاها در iOS، می‌توانید در یک اکشن آزمایشی خطایی مهلک ایجاد کنید.

۱. ایجاد خطای آزمایشی در Swift

می‌توانید از تابع fatalError() استاندارد در Swift یا فراخوانی abort() استفاده کنید:

ContentView.swiftswift
import SwiftUI

struct DebugCrashView: View {
    var body: some View {
        Button("Trigger Test Crash") {
            // DEVELOPMENT / TESTING ONLY: Remove before releasing to production
            fatalError("Intentional Didban test crash in Swift")
            
            // Or explicitly raise SIGABRT:
            // abort()
        }
        .buttonStyle(.borderedProminent)
    }
}

۲. مراحل ثبت و بسته‌شدن برنامه

  1. تله زمان اجرا یا سیگنال: فراخوانی fatalError یک سیگنال مهلک ایجاد می‌کند. هندلر C اختصاصی دیدبان در پشته سیگنال جایگزین فعال می‌شود.
  2. نوشتن پایدار در فضای برنامه: دیدبان فریم‌های پشته، ثبات‌های پردازنده و ردپاهای کاربر را با استفاده از فراخوانی‌های مستقیم سیستم‌عامل در فضای سندباکس برنامه می‌نویسد.
  3. خروج تمیز پروسس: سیستم‌عامل پروسس را خاتمه می‌دهد. هیچ درخواست شبکه‌ای در این لحظه ارسال نمی‌شود.
مهم

اپلیکیشن را مجدداً در شبیه‌ساز یا دستگاه اجرا کنید! دیدبان برای حفظ پایداری سیستم در زمان کرش هرگز درخواست شبکه ارسال نمی‌کند. برای اینکه رخداد ثبت‌شده بازیابی شده و به سرور ارسال گردد، برنامه را مجدداً باز کنید.

۳. بررسی رخداد در داشبورد

پس از اجرای مجدد برنامه:

  1. وارد داشبورد دیدبان شوید.
  2. پروژه خود را باز کنید و وارد بخش ایشوها (Issues) شوید.
  3. ایشوی جدید مربوط به خطای Swift یا سیگنال SIGABRT را مشاهده کنید.
  4. با کلیک روی ایشو وارد جزئیات رخداد (Event Detail) شوید و استک تریس، ثبات‌های پردازنده (Registers) و ردپاهای متنی را بررسی نمایید.