Firebase Crashlytics হল একটি হালকা ওজনের, রিয়েলটাইম ক্র্যাশ রিপোর্টার যা আপনার অ্যাপে স্থিতিশীলতার সমস্যাগুলি পরিচালনা করা সহজ করে তোলে। ক্র্যাশলিটিক্স বুদ্ধিমত্তার সাথে ক্র্যাশগুলিকে গোষ্ঠীবদ্ধ করে এবং সেগুলির দিকে পরিচালিত পরিস্থিতিগুলিকে হাইলাইট করে আপনার সমস্যা সমাধানের সময় বাঁচায়৷
এই নির্দেশিকা বর্ণনা করে কিভাবে আপনার Xcode প্রকল্পে Crashlytics একীভূত করতে হয় যাতে আপনি বিজ্ঞাপন প্রতিক্রিয়া আইডি লগ করতে পারেন। পরে, যখন আপনি আপনার অ্যাপে ক্র্যাশের সমস্যা সমাধান করেন, তখন আপনি বিজ্ঞাপন প্রতিক্রিয়া আইডি দেখতে পারেন এবং বিজ্ঞাপন পর্যালোচনা কেন্দ্র ব্যবহার করতে পারেনAdMobবিজ্ঞাপন খুঁজতে এবং ব্লক করতে।
ধাপ 1: একটি iOS অ্যাপ্লিকেশনে Firebase যোগ করুন
আপনি যদি একটি পরিষ্কার অ্যাপ থেকে Firebase-এর সাথে লগিং করার চেষ্টা করতে চান, আপনি GitHub-এ iOS সংগ্রহস্থলের জন্য Google মোবাইল বিজ্ঞাপন SDK উদাহরণ ডাউনলোড বা ক্লোন করতে পারেন। এই নির্দেশিকা বিশেষভাবে ব্যবহার করেব্যানার উদাহরণ ।
আপনার যদি ইতিমধ্যেই একটি অ্যাপ থাকে, তাহলে আপনি আপনার অ্যাপের বান্ডেল আইডি সহ অন্যান্য ধাপে যেতে সক্ষম হবেন। একই পদক্ষেপগুলি ক্ষুদ্র অভিযোজন সহ সংগ্রহস্থলের অন্যান্য উদাহরণগুলিতেও প্রয়োগ করা যেতে পারে।
Firebase Crashlytics ব্যবহার করার জন্য, আপনাকে অবশ্যই একটি Firebase প্রকল্প তৈরি করতে হবে এবং এতে আপনার অ্যাপ যোগ করতে হবে। যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে একটি Firebase প্রকল্প তৈরি করুন৷ এটিতে আপনার অ্যাপটি নিবন্ধন করতে ভুলবেন না।
Firebase কনসোলের Crashlytics পৃষ্ঠায়, Crashlytics সেট আপ করুন ক্লিক করুন।
প্রদর্শিত স্ক্রিনে, না > একটি নতুন ফায়ারবেস অ্যাপ সেট আপ করুন ক্লিক করুন।
Podfile-এ, Google Analytics এবং Firebase Crashlytics-এর জন্য Pods যোগ করুন।
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' target 'BannerExample' do use_frameworks! pod 'Google-Mobile-Ads-SDK' pod 'Firebase/Crashlytics' pod 'Firebase/Analytics' end
টার্মিনাল বা কমান্ড প্রম্পটে, আপনার পড ইনস্টল এবং আপডেট করুন:
pod install --repo-update
খুলুন
BannerExample.xcworkspace
প্রকল্পটি লোড করার জন্য Xcode-এর জন্যBannerExample.xcworkspace
ফাইল।
ধাপ 2: আপনার অ্যাপের জন্য Firebase কনফিগার করুন
সুইফট
আপনার AppDelegate.swift
এ, নিম্নলিখিত লাইন যোগ করুন:
import UIKit // Import the Firebase library import FirebaseCore @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Configure an instance of Firebase FirebaseApp.configure() return true } }
উদ্দেশ্য-C
আপনার AppDelegate.m
এ, নিম্নলিখিত লাইনগুলি যোগ করুন:
@import AppDelegate.h; // Import the Firebase library @import FirebaseCore; @interface AppDelegate () @end @implementation AppDelegate ‐ (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // Initialize Firebase [FIRApp configure]; return YES; }
Xcode-এ, বিল্ড সেটিংস খুলুন, বিল্ড ফেজ ট্যাবে ক্লিক করুন। ফ্যাব্রিক রান স্ক্রিপ্ট যোগ করুন:
আপনার বিল্ড ফোল্ডার পরিষ্কার করুন; তারপর, আপনার অ্যাপ তৈরি করুন এবং চালান। এখন আপনি Firebase ওয়েব কনসোলে লগইন করতে পারেন এবং Crashlytics ড্যাশবোর্ড অ্যাক্সেস করতে পারেন।
(ঐচ্ছিক): আপনার সেটআপ পরীক্ষা করুন
একটি ক্র্যাশ বোতাম যোগ করে আপনি প্রতিটি বোতাম টিপে একটি অ্যাপ ক্র্যাশ করার জন্য একটি ক্র্যাশ বাধ্য করতে পারেন৷ এই পরীক্ষা সেটআপটি Firebase Crashlytic ড্যাশবোর্ডে কাস্টম লগ পাঠাতে ধাপ 3-এ কোডটিকে ট্রিগার করবে।
সুইফট
আপনার ViewController.swift
এ viewDidLoad()
ফাংশনে নিম্নলিখিত লাইন যোগ করুন:
override func viewDidLoad() { super.viewDidLoad() print("Google Mobile Ads SDK version: \(GADRequest.sdkVersion())") bannerView.delegate = self bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" bannerView.rootViewController = self bannerView.load(GADRequest()) let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) }
তারপর, আপনার ক্লাস ঘোষণার নীচে এই @IBAction
যোগ করুন:
@IBAction func crashButtonTapped(_ sender: AnyObject) { fatalError("Test Crash Happened") }
উদ্দেশ্য-C
আপনার ViewController.m
এ viewDidLoad
পদ্ধতিতে নিম্নলিখিত লাইন যোগ করুন:
‐ (void)viewDidLoad { [super viewDidLoad]; /// ... UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; }
তারপর, আপনার ক্লাস ঘোষণার নীচে এই IBAction
যোগ করুন:
‐ (IBAction)crashButtonTapped:(id)sender { assert(NO); }
Xcode টুলবারে, স্টপ বোতাম টিপুন এবং তারপরে একটি সিমুলেটরের মাধ্যমে অ্যাপটি পুনরায় চালু করুন। অ্যাপটি লোড হওয়ার পরে, আপনি ক্র্যাশ বোতামে ক্লিক করতে পারেন। Xcode-এ ফিরে আসুন এবং ক্র্যাশলিটিক্সে আপলোড করার জন্য ক্র্যাশ লগের জন্য প্লে বোতামে ক্লিক করুন।
ধাপ 3: বিজ্ঞাপন প্রতিক্রিয়া আইডি লগ করুন
আপনি যদি একাধিক বিজ্ঞাপন লোড করেন এবং সেগুলিকে বিভিন্ন সময়ে দেখান, প্রতিটি বিজ্ঞাপন প্রতিক্রিয়া আইডি একটি পৃথক কী দিয়ে লগ করা একটি ভাল ধারণা৷ উদাহরণস্বরূপ, এই নির্দেশিকাটি এমন একটি উদাহরণ ব্যবহার করে যেখানে শুধুমাত্র একটি ব্যানার বিজ্ঞাপন রয়েছে৷ তাই, আমরা নিম্নলিখিত স্নিপেটে banner_ad_response_id
কী হিসাবে বিজ্ঞাপন প্রতিক্রিয়া আইডি লগ করি।
এছাড়াও আপনি বিভিন্ন ধরনের বিজ্ঞাপন এবং বিজ্ঞাপন ইভেন্টের জন্য Firebase Crashlytics-এ একাধিক কাস্টম কী/মান জোড়া তৈরি করতে পারেন। বিজ্ঞাপনের অনুরোধের জীবনচক্রের বিজ্ঞপ্তি দেখুন
কাস্টম লগিং সম্পর্কে আরও তথ্যের জন্য আপনার Firebase Crashlytics ক্র্যাশ রিপোর্ট কাস্টমাইজ করুন দেখুন।
সুইফট
আপনার ViewController.swift
এ নিম্নলিখিত কোড যোগ করুন। মূলত, এটি adViewDidReceiveAd
কলব্যাক ফাংশনে Crashlytics.setCustomValue()
ফাংশন ব্যবহার করে।
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADBannerViewDelegate { /// The banner view. @IBOutlet weak var bannerView: GADBannerView! override func viewDidLoad() { super.viewDidLoad() ... bannerView.delegate = self ... } /// Tells the delegate an ad request loaded an ad. func adViewDidReceiveAd(_ bannerView: GADBannerView) { if let responseInfo = bannerView.responseInfo, responseId = responseInfo.responseId { print("adViewDidReceiveAd from network: \(responseInfo.adNetworkClassName), response Id='\(responseId)'") Crashlytics.sharedInstance().setCustomValue(responseId, forKey: "banner_ad_response_id") } } }
উদ্দেশ্য-C
আপনার ViewController.m
এ নিম্নলিখিত কোড যোগ করুন। মূলত, এটি adViewDidReceiveAd
ফাংশনে [FIRCrashlytics crashlytics]
setCustomValue
ফাংশন ব্যবহার করে।
@import GoogleMobileAds; @interface ViewController () @property(nonatomic, strong) GADBannerView *bannerView; @end @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // In this case, we instantiate the banner with desired ad size. self.bannerView = [[GADBannerView alloc] initWithAdSize:GADAdSizeBanner]; [self addBannerViewToView:self.bannerView]; } ‐ (void)addBannerViewToView:(UIView *)bannerView { bannerView.translatesAutoresizingMaskIntoConstraints = NO; [self.view addSubview:bannerView]; [self.view addConstraints:@[ [NSLayoutConstraint constraintWithItem:bannerView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop multiplier:1 constant:0], [NSLayoutConstraint constraintWithItem:bannerView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view kattribute:NSLayoutAttributeCenterX multiplier:1 constant:0] ]]; } - (void)adViewDidReceiveAd:(GADBannerView *)bannerView { NSString *adResponseId = bannerView.responseInfo.responseId; if (adResponseId) { NSLog(@"adViewDidReceiveAd from network: %@ with response Id: %@", bannerView.responseInfo.adNetworkClassName, adResponseId); [[FIRCrashlytics crashlytics] setCustomValue:adResponseId forKey:@"banner_ad_response_id"]; } } @end
অভিনন্দন! আপনি এখন আপনার Crashlytics ড্যাশবোর্ডে ক্র্যাশ সেশনের মূল বিভাগে সবচেয়ে সাম্প্রতিক adResponseId
দেখতে পাবেন। মনে রাখবেন কিছু কী আপনার ড্যাশবোর্ডে দৃশ্যমান হতে এক ঘন্টা পর্যন্ত সময় লাগতে পারে।