Firebase Crashlytics verilerinizi yönetmenizi kolaylaştıran hafif, gerçek zamanlı bir kilitlenme raporudur istikrarla ilgili sorunlarınız olabilir. Crashlytics, Google Cloud'un sunduğu özellikleri kullanarak kilitlenmeleri akıllı bir şekilde gruplandırmak ve bu kilitlenmelere yol açan koşulları kabul eder.
Bu kılavuzda, Crashlytics'i Xcode projenize nasıl entegre edeceğiniz açıklanmaktadır. reklam yanıtı kimliklerini günlüğe kaydedebileceğinizden emin olun. Daha sonra uygulamasında reklam yanıtı kimliğini arayabilir ve Reklam İnceleme Merkezi'ni Ad Manager reklamları engelleyebilir ve engelleyebilirsiniz.
1. Adım: Firebase'i bir iOS uygulamasına ekleyin
Temiz bir uygulama üzerinden Firebase ile giriş yapmayı denemek isterseniz iOS için Google Mobile Ads SDK'sı örneklerini indirin veya klonlayın repository: GitHub. Bu kılavuzda özellikle . Banner Örneği.
Zaten uygulamanız varsa diğer adımlara geçebilirsiniz. uygulamanızın paket kimliği ile değiştirin. Aynı adımlar, küçük uyarlamalara sahip örnekler oluşturacağız.
Firebase Crashlytics'i kullanmak için Firebase projesi oluşturmanız ve uygulamanızı ona ekleyin. Henüz oluşturmadıysanız bir Firebase projesi oluşturun. Marka kaydattırmayı unutmayın. ekleyebilirsiniz.
Firebase konsolunun Crashlytics sayfasında Ayarla'yı tıklayın. Crashlytics'i seçin.
Görüntülenen ekranda Hayır > Yeni bir Firebase oluşturun uygulamasında gösterilir.
Podfile'a, Google Analytics ve Firebase Crashlytics için Kapsüller ekleyin.
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' target 'AdManagerBannerExample' do use_frameworks! pod 'Google-Mobile-Ads-SDK' pod 'Firebase/Crashlytics' pod 'Firebase/Analytics' end
Terminal'de veya bir komut isteminde kapsüllerinizi yükleyin ve güncelleyin:
pod install --repo-update
Şu öğe için
AdManagerBannerExample.xcworkspace
dosyasını aç: Xcode kullanarak projeyi yükleyin.
2. Adım: Uygulamanız için Firebase'i yapılandırın
Swift
AppDelegate.swift
bölümüne aşağıdaki satırları ekleyin:
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 } }
Objective-C
AppDelegate.m
bölümüne aşağıdaki satırları ekleyin:
@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'da Build Settings (Derleme Ayarları) bölümünü açın, Build Phases (Derleme Aşamaları) sekmesini tıklayın. URL'yi Fabric çalıştırma komut dosyası:
Derleme klasörünüzü temizleyin; sonra uygulamanızı derleyip çalıştırın. Şimdi giriş yapabilirsiniz: Firebase web konsoluna gidip Crashlytics kontrol paneli.
(İsteğe bağlı): Kurulumunuzu test edin
Kilitlenme ekleyerek düğme her düğmeye her basıldığında uygulamanın kilitlenmesine neden olacak şekilde kilitlenmeyi zorlayabilirsiniz. Bu test kurulumu, özel günlükleri Firebase Crashlytic'e göndermek için 3. adımdaki kodu tetikler. kontrol panelleridir.
Swift
ViewController.swift
içinde aşağıdaki satırları
viewDidLoad()
işlevi:
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) }
Ardından, sınıf beyanınızın alt kısmına @IBAction
ifadesini ekleyin:
@IBAction func crashButtonTapped(_ sender: AnyObject) { fatalError("Test Crash Happened") }
Objective-C
ViewController.m
bölümünde aşağıdaki satırları viewDidLoad
bölümüne ekleyin
yöntem:
‐ (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]; }
Ardından, sınıf beyanınızın alt kısmına IBAction
ifadesini ekleyin:
‐ (IBAction)crashButtonTapped:(id)sender { assert(NO); }
Xcode araç çubuğunda Durdur düğmesine basın ve uygulamayı yeniden başlatın simülatörle oynanabilir. Uygulama yüklendikten sonra, sağ taraftaki Kilitlenme düğmesini tıklayın. Xcode'a geri dönün ve kilitlenme günlüğünün şu şekilde olması için Oynat düğmesini tıklayın: Crashlytics'e yüklendi.
3. Adım: Reklam yanıtı kimliğini günlüğe kaydedin
Birden çok reklam yükleyip farklı zamanlarda gösteriyorsanız
Her reklam yanıtı kimliğini ayrı bir anahtarla günlüğe kaydeder. Örneğin, bu kılavuzda
yalnızca bir banner reklam içeren bir örnek görebilirsiniz. Bu nedenle, reklam yanıtı kimliği
banner_ad_response_id
anahtarını ekleyin.
Firebase Crashlytics'te birden fazla özel anahtar / değer çifti de oluşturabilirsiniz farklı reklam türlerini ve reklam etkinliklerini görebilirsiniz. Reklam isteği yaşam döngüsünü inceleyin bildirimler
Firebase Crashlytics kilitlenmenizi özelleştirin raporlar konusuna bakın.
Swift
Aşağıdaki kodu ViewController.swift
cihazınıza ekleyin. Özetlemek gerekirse
Crashlytics.setCustomValue()
işlevini adViewDidReceiveAd
geri çağırma işlevinde bulabilirsiniz.
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") } } }
Objective-C
Aşağıdaki kodu ViewController.m
cihazınıza ekleyin. Özetlemek gerekirse
[FIRCrashlytics crashlytics]
.
setCustomValue
işlevini adViewDidReceiveAd
işlevinde kullanabilirsiniz.
@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
Tebrikler! Artık anahtardaki en son adResponseId
öğesini göreceksiniz
kilitlenme oturumlarının olduğu bir bölümde görebilirsiniz. Bazı anahtarların
kontrol panelinizde görünmesi bir saat kadar sürebilir.