این شروع سریع نحوه راهاندازی Firebase Crashlytics را در برنامه خود با Firebase Crashlytics SDK توضیح میدهد تا بتوانید گزارشهای خرابی جامع را در کنسول Firebase دریافت کنید.
راهاندازی Crashlytics به وظایفی هم در کنسول Firebase و هم در IDE شما نیاز دارد (مانند افزودن یک فایل پیکربندی Firebase و Crashlytics SDK). برای تکمیل راهاندازی، باید یک خرابی آزمایشی را مجبور کنید تا اولین گزارش خرابی خود را به Firebase ارسال کنید.
قبل از شروع
اگر قبلاً این کار را نکرده اید، Firebase را به پروژه اپل خود اضافه کنید . اگر برنامه اپل ندارید، می توانید یک برنامه نمونه دانلود کنید.
توصیه میشود : برای دریافت خودکار گزارشهای خرده نان برای درک اقدامات کاربر که منجر به خرابی، رویداد غیرمرگبار یا ANR میشود، باید Google Analytics در پروژه Firebase خود فعال کنید.
اگر پروژه Firebase موجود شما Google Analytics فعال نکرده است، می توانید Google Analytics از برگه Integrations فعال کنید.
Firebase . > تنظیمات پروژه در کنسولاگر در حال ایجاد یک پروژه Firebase هستید، Google Analytics در جریان کار ایجاد پروژه فعال کنید.
توجه داشته باشید که گزارشهای سوخاری برای همه پلتفرمهای اپل که توسط Crashlytics پشتیبانی میشوند به جز watchOS در دسترس هستند.
مرحله 1 : Crashlytics SDK را به برنامه خود اضافه کنید
در Xcode، با باز بودن پروژه برنامه، به File > Add Packages بروید. هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید: - کتابخانه Crashlytics را انتخاب کنید.
- برای بهرهمندی از گزارشهای خرده نان ، Firebase SDK برای Google Analytics را نیز به برنامه خود اضافه کنید. مطمئن شوید که Google Analytics در پروژه Firebase شما فعال است .
- پرچم
-ObjC
را به بخش Other Linker Flags تنظیمات ساخت هدف خود اضافه کنید. - (فقط macOS) در
Info.plist
خود، کلیدNSApplicationCrashOnExceptions
را اضافه کنید و آن را رویYES
تنظیم کنید. - پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی های شما در پس زمینه می کند.
https://github.com/firebase/firebase-ios-sdk.git
ماژول Firebase را در ساختار App
یاUIApplicationDelegate
خود وارد کنید:import Firebase
@import Firebase;
یک نمونه اشتراکگذاری شده FirebaseApp
معمولاً درapplication(_:didFinishLaunchingWithOptions:)
پیکربندی کنید:// Use the Firebase library to configure APIs. FirebaseApp.configure()
// Use the Firebase library to configure APIs. [FIRApp configure];
مرحله 2 : Xcode را برای آپلود خودکار فایلهای dSYM تنظیم کنید
فضای کاری Xcode پروژه خود را باز کنید، سپس فایل پروژه آن را در ناوبری سمت چپ انتخاب کنید. از لیست TARGETS ، هدف ساخت اصلی خود را انتخاب کنید. روی تب Build Settings کلیک کنید، سپس مراحل زیر را کامل کنید تا Xcode dSYM را برای بیلدهای شما تولید کند. روی همه کلیک کنید، سپس debug information format
جستجو کنید.فرمت اطلاعات اشکال زدایی را DWARF with dSYM File
تنظیم کنید.
روی تب Build Phases کلیک کنید، سپس مراحل زیر را انجام دهید تا Xcode بتواند dSYM های شما را پردازش کرده و فایل ها را آپلود کند. مطمئن شوید که این مرحله Run Script جدید آخرین مرحله ساخت پروژه شما است. در غیر این صورت، Crashlytics نمی تواند dSYM ها را به درستی پردازش کند. بخش Run Script جدید را باز کنید. در قسمت اسکریپت (که در زیر برچسب Shell قرار دارد)، اسکریپت اجرای زیر را اضافه کنید. این اسکریپت فایل های dSYM پروژه شما را پردازش می کند و فایل ها را در Crashlytics آپلود می کند. "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
در بخش Input Files ، مسیرهای مکان فایل های زیر را اضافه کنید: ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
اگر$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YES
وENABLE_DEBUG_DYLIB=YES
در تنظیمات ساخت پروژه خود دارید، موارد زیر را اضافه کنید:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
درک کنید که چرا مکان های این فایل ها مورد نیاز است
Xcode در مکان های مشخص شده برای این فایل های ورودی جستجو می کند تا مطمئن شود که فایل های ساخت برای اسکریپت اجرا در دسترس هستند. همچنین، اگر User Script Sandboxing فعال باشد، Xcode فقط به اسکریپت اجرا شده اجازه دسترسی به فایلهای مشخصشده در فایلهای ورودی را میدهد.
- ارائه مکان فایلهای dSYM پروژه شما، Crashlytics قادر میسازد تا dSYMها را پردازش کند.
- ارائه مکان فایل
GoogleService-Info.plist
ساخته شده برنامه شما Crashlytics قادر می سازد dSYM ها را با برنامه Firebase شما مرتبط کند. - ارائه مکان فایل اجرایی برنامه شما به اسکریپت اجرا اجازه می دهد تا از آپلودهای تکراری همان dSYM جلوگیری کند. توجه داشته باشید که باینری های برنامه آپلود نمی شوند.
مرحله 3 : یک خرابی آزمایشی را مجبور کنید تا راهاندازی تمام شود
کدی را به برنامه خود اضافه کنید که می توانید از آن برای اجبار تست خرابی استفاده کنید. می توانید از کد زیر برای اضافه کردن دکمه ای به برنامه خود استفاده کنید که با فشردن آن باعث خرابی می شود. این دکمه دارای برچسب "تست تصادف" است. Button("Crash") { fatalError("Crash was triggered") }
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Test Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashButtonTapped(_ sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
#import "ViewController.h" @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Test Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } ‐ (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
برنامه خود را در Xcode بسازید و اجرا کنید که اشکال زدای Xcode قطع شده است. روی Build کلیک کنید و سپس طرح فعلی را اجرا کنید تا برنامه خود را روی یک دستگاه آزمایشی یا شبیه ساز بسازید.صبر کنید تا برنامه شما اجرا شود، سپس Crashlytics تداخل دارد. توقف اجرای طرح یا اقدام کلیک کنید تا نمونه اولیه برنامه شما بسته شود. این نمونه اولیه شامل اشکال زدایی بود که با
برای ارسال اولین گزارش خرابی برنامه خود، خرابی آزمایشی را اجباری کنید: برنامه خود را از صفحه اصلی دستگاه آزمایشی یا شبیه ساز خود باز کنید. در برنامه خود، دکمه «Test Crash» را که با استفاده از کد بالا اضافه کردید، فشار دهید. پس از خراب شدن برنامه، آن را دوباره از Xcode اجرا کنید تا برنامه شما بتواند گزارش خرابی را به Firebase ارسال کند.
برای مشاهده خرابی آزمایشی خود، به داشبورد Crashlytics کنسول Firebase بروید. اگر کنسول را بهروزرسانی کردهاید و بعد از پنج دقیقه هنوز خرابی آزمایشی را نمیبینید، ثبت اشکالزدایی را فعال کنید تا ببینید آیا برنامه شما گزارشهای خرابی را ارسال میکند یا خیر.