এই কুইকস্টার্ট বর্ণনা করে কিভাবে Firebase Crashlytics SDK এর সাথে আপনার অ্যাপে Firebase Crashlytics সেট আপ করবেন যাতে আপনি Firebase কনসোলে ব্যাপক ক্র্যাশ রিপোর্ট পেতে পারেন।
Crashlytics সেট আপ করার জন্য Firebase কনসোল এবং আপনার IDE উভয়েরই কাজ প্রয়োজন (যেমন একটি Firebase কনফিগারেশন ফাইল এবং Crashlytics SDK যোগ করা)। সেটআপ শেষ করতে, Firebase-এ আপনার প্রথম ক্র্যাশ রিপোর্ট পাঠাতে আপনাকে একটি পরীক্ষা ক্র্যাশ করতে বাধ্য করতে হবে।
আপনি শুরু করার আগে
যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার Apple প্রকল্পে Firebase যোগ করুন । আপনার কাছে অ্যাপল অ্যাপ না থাকলে, আপনি একটি নমুনা অ্যাপ ডাউনলোড করতে পারেন।
প্রস্তাবিত : ক্র্যাশ, নন-ফেটাল বা ANR ইভেন্ট পর্যন্ত ব্যবহারকারীর অ্যাকশন বোঝার জন্য স্বয়ংক্রিয়ভাবে ব্রেডক্রাম্ব লগ পেতে, আপনাকে আপনার Firebase প্রোজেক্টে Google Analytics সক্ষম করতে হবে।
যদি আপনার বিদ্যমান ফায়ারবেস প্রকল্পে Google Analytics সক্ষম না থাকে, তাহলে আপনি আপনার ইন্টিগ্রেশন ট্যাব থেকে Google Analytics সক্ষম করতে পারেন
Firebase কনসোলে প্রকল্প সেটিংস । >আপনি যদি একটি নতুন ফায়ারবেস প্রজেক্ট তৈরি করেন, তাহলে প্রোজেক্ট তৈরির ওয়ার্কফ্লো চলাকালীন Google Analytics সক্ষম করুন।
লক্ষ্য করুন যে ব্রেডক্রাম্ব লগগুলি watchOS ব্যতীত Crashlytics দ্বারা সমর্থিত সমস্ত Apple প্ল্যাটফর্মের জন্য উপলব্ধ।
ধাপ 1 : আপনার অ্যাপে Crashlytics SDK যোগ করুন
Xcode-এ, আপনার অ্যাপ প্রকল্প খোলার সাথে, ফাইল > প্যাকেজ যোগ করুন -এ নেভিগেট করুন। অনুরোধ করা হলে, Firebase Apple প্ল্যাটফর্ম SDK সংগ্রহস্থল যোগ করুন: - Crashlytics লাইব্রেরি বেছে নিন।
- ব্রেডক্রাম্ব লগের সুবিধা নিতে, আপনার অ্যাপে Google Analytics জন্য Firebase SDK যোগ করুন। আপনার Firebase প্রোজেক্টে Google Analytics চালু আছে কিনা তা নিশ্চিত করুন।
- আপনার লক্ষ্যের বিল্ড সেটিংসের অন্যান্য লিঙ্কার ফ্ল্যাগ বিভাগে
-ObjC
পতাকা যোগ করুন। - (শুধুমাত্র macOS) আপনার
Info.plist
এ,NSApplicationCrashOnExceptions
কী যোগ করুন এবং এটিকেYES
সেট করুন। - শেষ হয়ে গেলে, Xcode স্বয়ংক্রিয়ভাবে পটভূমিতে আপনার নির্ভরতাগুলি সমাধান এবং ডাউনলোড করা শুরু করবে।
https://github.com/firebase/firebase-ios-sdk.git
আপনার App
স্ট্রাকটে বাUIApplicationDelegate
এ Firebase মডিউল আমদানি করুন: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 : স্বয়ংক্রিয়ভাবে dSYM ফাইল আপলোড করতে Xcode সেট আপ করুন
আপনার প্রোজেক্টের এক্সকোড ওয়ার্কস্পেস খুলুন, তারপর বাম নেভিগেটরে এর প্রোজেক্ট ফাইলটি নির্বাচন করুন। লক্ষ্য তালিকা থেকে, আপনার প্রধান বিল্ড লক্ষ্য নির্বাচন করুন। বিল্ড সেটিংস ট্যাবে ক্লিক করুন, তারপরে নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন যাতে Xcode আপনার বিল্ডগুলির জন্য dSYM তৈরি করে৷ সমস্ত ক্লিক করুন, তারপর debug information format
অনুসন্ধান করুন।আপনার সমস্ত বিল্ড প্রকারের জন্য DWARF with dSYM File
এ ডিবাগ তথ্য বিন্যাস সেট করুন।
বিল্ড ফেজ ট্যাবে ক্লিক করুন, তারপরে নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন যাতে Xcode আপনার dSYMগুলি প্রক্রিয়া করতে পারে এবং ফাইলগুলি আপলোড করতে পারে৷ নিশ্চিত করুন যে এই নতুন রান স্ক্রিপ্ট পর্বটি আপনার প্রকল্পের শেষ বিল্ড ফেজ; অন্যথায়, Crashlytics সঠিকভাবে dSYM গুলি প্রক্রিয়া করতে পারে না। নতুন রান স্ক্রিপ্ট বিভাগটি প্রসারিত করুন। স্ক্রিপ্ট ক্ষেত্রে ( শেল লেবেলের অধীনে অবস্থিত), নিম্নলিখিত রান স্ক্রিপ্ট যোগ করুন। এই স্ক্রিপ্টটি আপনার প্রকল্পের dSYM ফাইলগুলি প্রক্রিয়া করে এবং ফাইলগুলি Crashlytics এ আপলোড করে। "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
ইনপুট ফাইল বিভাগে, নিম্নলিখিত ফাইলগুলির অবস্থানের জন্য পাথ যোগ করুন: ${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 এই ইনপুট ফাইলগুলির জন্য নির্দিষ্ট অবস্থানগুলিতে দেখায়। এছাড়াও, যদি ব্যবহারকারীর স্ক্রিপ্ট স্যান্ডবক্সিং সক্ষম করা থাকে, Xcode শুধুমাত্র রান স্ক্রিপ্টকে ইনপুট ফাইলগুলিতে নির্দিষ্ট করা ফাইলগুলি অ্যাক্সেস করার অনুমতি দেয়৷
- আপনার প্রকল্পের dSYM ফাইলগুলির অবস্থান প্রদান করা Crashlytics dSYM প্রক্রিয়া করতে সক্ষম করে৷
- আপনার অ্যাপের তৈরি
GoogleService-Info.plist
ফাইলের অবস্থান প্রদান করা Crashlytics আপনার Firebase অ্যাপের সাথে dSYMs যুক্ত করতে সক্ষম করে। - আপনার অ্যাপের এক্সিকিউটেবলের অবস্থান প্রদান করা স্ক্রিপ্টটিকে একই 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-এ আপনার অ্যাপ তৈরি করুন এবং চালান। আপনার অ্যাপ চালু না হওয়া পর্যন্ত অপেক্ষা করুন, তারপর আপনার অ্যাপের প্রাথমিক উদাহরণ বন্ধ করতে স্কিম চালানো বন্ধ Crashlytics এ হস্তক্ষেপ করে। বা অ্যাকশনে ক্লিক করুন। এই প্রাথমিক উদাহরণে ডিবাগার অন্তর্ভুক্ত যা
আপনার অ্যাপের প্রথম ক্র্যাশ রিপোর্ট পাঠানোর জন্য পরীক্ষা ক্র্যাশ জোরপূর্বক করুন: আপনার পরীক্ষা ডিভাইস বা সিমুলেটর হোম স্ক্রীন থেকে আপনার অ্যাপ্লিকেশন খুলুন. আপনার অ্যাপে, উপরের কোডটি ব্যবহার করে আপনি যোগ করা "টেস্ট ক্র্যাশ" বোতাম টিপুন। আপনার অ্যাপ ক্র্যাশ হওয়ার পরে, এটিকে আবার Xcode থেকে চালান যাতে আপনার অ্যাপটি Firebase-এ ক্র্যাশ রিপোর্ট পাঠাতে পারে।
আপনার পরীক্ষা ক্র্যাশ দেখতে Firebase কনসোলের Crashlytics ড্যাশবোর্ডে যান। আপনি যদি কনসোলটি রিফ্রেশ করে থাকেন এবং আপনি এখনও পাঁচ মিনিটের পরেও পরীক্ষা ক্র্যাশ দেখতে না পান, আপনার অ্যাপ ক্র্যাশ রিপোর্ট পাঠাচ্ছে কিনা তা দেখতে ডিবাগ লগিং সক্ষম করুন ৷
পরবর্তী পদক্ষেপ
অপ্ট-ইন রিপোর্টিং, লগ, কী, এবং অ-মারাত্মক ত্রুটির ট্র্যাকিং যোগ করে আপনার ক্র্যাশ রিপোর্ট সেটআপ কাস্টমাইজ করুন ।