Firebase Crashlytics'i kullanmaya başlayın


Bu hızlı başlangıç kılavuzunda, Firebase konsolunda kapsamlı kilitlenme raporları alabilmek için uygulamanızda Firebase Crashlytics SDK'sı ile Firebase Crashlytics'ü nasıl ayarlayacağınız açıklanmaktadır.

Crashlytics'ü ayarlamak için hem Firebase konsolunda hem de IDE'nizde (ör. Firebase yapılandırma dosyası ve Crashlytics SDK'sı ekleme) görevler yapmanız gerekir. İlk kilitlenme raporunuzu Firebase'e göndermek için kurulumu tamamlamak üzere test kilitlenmesini zorlamanız gerekir.

Başlamadan önce

  1. Henüz yapmadıysanız Apple projenize Firebase'i ekleyin. Apple uygulamanız yoksa örnek uygulama indirebilirsiniz.

  2. Önerilir: Kilitlenme, ölümcül olmayan veya ANR etkinliğine yol açan kullanıcı işlemlerini anlamak için ekmek kırıntıları günlüklerini otomatik olarak almak istiyorsanız Firebase projenizde Google Analytics'i etkinleştirmeniz gerekir.

    • Mevcut Firebase projenizde Google Analytics etkin değilse Firebase konsolunda > Proje ayarları bölümündeki Entegrasyonlar sekmesinden Google Analytics'ü etkinleştirebilirsiniz.

    • Yeni bir Firebase projesi oluşturuyorsanız proje oluşturma iş akışı sırasında Google Analytics politikasını etkinleştirin.

    Breadcrumb günlüklerinin, watchOS hariç Crashlytics tarafından desteklenen tüm Apple platformlarında kullanılabileceğini unutmayın.

1. Adım: Crashlytics SDK'sını uygulamanıza ekleyin

Firebase bağımlılarını yüklemek ve yönetmek için Swift Package Manager'ı kullanın.

Firebase SDK'larını Apple projenize eklemenin farklı yolları (ör. doğrudan çerçeveleri içe aktarma ve CocoaPods kullanma) hakkında bilgi edinmek için
  1. Xcode'da, uygulamanız açıkken Dosya > Paket Ekle'ye gidin.
  2. İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Crashlytics kitaplığını seçin.
  5. Breadcrumb günlüklerinden yararlanmak için uygulamanıza Google Analytics için Firebase SDK'sını da ekleyin. Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.
  6. -ObjC işaretini, hedefinizin derleme ayarlarının Diğer Bağlantı Oluşturucu İşaretleri bölümüne ekleyin.
  7. (Yalnızca macOS) Info.plist dosyanıza NSApplicationCrashOnExceptions anahtarını ekleyin ve YES olarak ayarlayın.
  8. İşlem tamamlandığında Xcode, arka planda bağımlılarınızı otomatik olarak çözümlemeye ve indirmeye başlar.

Ardından Firebase modülünü yapılandırın:

  1. App struct'unuza veya UIApplicationDelegate'a Firebase modülünü içe aktarın:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. Genellikle uygulama temsilcinizin application(_:didFinishLaunchingWithOptions:) yönteminde bir FirebaseApp paylaşılan örneği yapılandırın:

    Swift

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()
    

    Objective-C

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    

2. Adım: Xcode'u dSYM dosyalarını otomatik olarak yükleyecek şekilde ayarlayın

Crashlytics'ün, kullanıcılar tarafından okunabilen kilitlenme raporları oluşturması için projenizin hata ayıklama sembolü (dSYM) dosyalarına ihtiyacı vardır. Aşağıdaki adımlarda, dSYM'lerinizi otomatik olarak oluşturması, işlemesi ve uygulamanızı derlediğinizde dosyaları yüklemesi için Xcode'un nasıl yapılandırılacağı açıklanmaktadır.

  1. Projenizin Xcode çalışma alanını açın, ardından sol gezinme menüsünde proje dosyasını seçin.

  2. TARGETS listesinden ana derleme hedefinizi seçin.

  3. Derleme Ayarları sekmesini tıklayın ve Xcode'un derlemeleriniz için dSYM'ler oluşturması amacıyla aşağıdaki adımları tamamlayın.

    1. Tümü'nü tıklayın, ardından debug information format için arama yapın.

    2. Tüm derleme türleriniz için Hata Ayıklama Bilgisi Biçimi'ni DWARF with dSYM File olarak ayarlayın.

  4. Derleme Aşamaları sekmesini tıklayın ve Xcode'un dSYM'lerinizi işleyip dosyaları yükleyebilmesi için aşağıdaki adımları tamamlayın.

    1. > Yeni Komut Dosyası Çalıştırma Aşaması'nı tıklayın.

      Bu yeni Komut Dosyası Çalıştır aşamasının projenizin son derleme aşaması olduğundan emin olun. Aksi takdirde Crashlytics, dSYM'leri düzgün şekilde işleyemez.

    2. Yeni Komut Dosyası Çalıştır bölümünü genişletin.

    3. Komut dosyası alanına (Kabuk etiketinin altında bulunur) aşağıdaki çalıştırma komut dosyasını ekleyin.

      Bu komut dosyası, projenizin dSYM dosyalarını işler ve dosyaları Crashlytics'e yükler.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. Giriş Dosyaları bölümünde, aşağıdaki dosyaların konumlarının yollarını ekleyin:

      ${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)

dSYM dosyaları ve Crashlytics hakkında daha ayrıntılı bilgi edinmek için (dSYM dosyalarının manuel olarak yüklenmesi dahil) Gizleme işlemi uygulanmış kilitlenme raporları alma başlıklı makaleyi inceleyin.

3. Adım: Kurulumu tamamlamak için test kilitlenmesini zorlama

Crashlytics'ü ayarlamayı tamamlamak ve Firebase konsolunun Crashlytics kontrol panelinde ilk verileri görmek için test kilitlenmesini zorlamanız gerekir.

  1. Uygulamanıza, test amaçlı kilitlenme yapmak için kullanabileceğiniz kod ekleyin.

    Uygulamanıza, basıldığında kilitlenme oluşturan bir düğme eklemek için aşağıdaki kodu kullanabilirsiniz. Düğme "Test Kilitlenmesi" olarak etiketlenmiştir.

    SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    UIKit

    Swift

    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]
      }
    }
    

    Objective-C

    #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
    
  2. Xcode hata ayıklayıcısının bağlantısı kesilmişken uygulamanızı Xcode'da derleyip çalıştırın.

    1. Uygulamanızı bir test cihazında veya simülatörde oluşturmak için Mevcut şemayı oluştur ve çalıştır'ı tıklayın.

    2. Uygulamanız çalıştırılana kadar bekleyin, ardından uygulamanızın ilk örneğini kapatmak için Dizeni veya işlemi çalıştırmayı durdur'u tıklayın. Bu ilk örnek, Crashlytics ile etkileşime geçen hata ayıklayıcıyı içeriyordu.

  3. Uygulamanızın ilk kilitlenme raporunu göndermek için test kilitlenmesini zorlama:

    1. Test cihazınızın veya simülatörünüzün ana ekranından uygulamanızı açın.

    2. Uygulamanızda, yukarıdaki kodu kullanarak eklediğiniz "Kilitlenmeyi Test Et" düğmesine basın.

    3. Uygulamanız kilitlendikten sonra, kilitlenme raporunu Firebase'e gönderebilmesi için Xcode'dan tekrar çalıştırın.

  4. Test kilitlenmenizi görmek için Firebase konsolunun Crashlytics kontrol paneline gidin.

    Konsolu yeniledikten sonra beş dakika geçmesine rağmen testin kilitlendiğini görmüyorsanız uygulamanızın kilitlenme raporu gönderip göndermediğini görmek için hata ayıklama günlük kaydını etkinleştirin.


Hepsi bu kadar. Crashlytics, uygulamanızı kilitlenmeler açısından izliyor. Tüm rapor ve istatistiklerinizi görüntülemek ve incelemek için Crashlytics kontrol panelini ziyaret edin.

Sonraki adımlar