Firebase Crashlytics'i kullanmaya başlayın


Bu hızlı başlangıç kılavuzunda, Firebase Crashlytics SDK'sını kullanarak uygulamanızda Firebase Crashlytics'yı nasıl ayarlayacağınız açıklanmaktadır. Böylece, Firebase konsolunda kapsamlı kilitlenme raporları alabilirsiniz.

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

Başlamadan önce

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

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

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

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

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

1. adım: Uygulamanıza Crashlytics SDK'sını ekleyin

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

  1. Xcode'da, uygulamanız açıkken File > Add Packages (Dosya > Paket Ekle) seçeneğine 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. Ayrıntılı günlüklerden yararlanmak için uygulamanıza Firebase SDK'sını da ekleyin. Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.Google Analytics
  6. -ObjC işaretini hedefinizin derleme ayarlarının Other Linker Flags (Diğer Bağlayıcı İşaretleri) bölümüne ekleyin.
  7. (Yalnızca macOS) Info.plist dosyanıza anahtarı ekleyin NSApplicationCrashOnExceptions ve bunu YES olarak ayarlayın.
  8. İşlem tamamlandığında Xcode otomatik olarak arka planda bağımlılarınızı çözümlemeye ve indirmeye başlar.

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

  1. Firebase modülünü App yapınıza veya UIApplicationDelegate yapınıza aktarın:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. Genellikle uygulama temsilcinizin FirebaseApp yönteminde application(_:didFinishLaunchingWithOptions:) paylaşılan bir örnek 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

İnsan tarafından okunabilir kilitlenme raporları oluşturmak için Crashlytics, projenizin hata ayıklama sembolü (dSYM) dosyalarına ihtiyaç duyar. Aşağıdaki adımlarda, Xcode'u uygulamanızı her derlediğinizde dSYM'lerinizi otomatik olarak oluşturacak, işleyecek ve dosyaları yükleyecek şekilde nasıl yapılandıracağınız açıklanmaktadır.

  1. Projenizin Xcode çalışma alanını açın, ardından sol gezinicide proje dosyasını seçin.

  2. HEDEFLER listesinden ana derleme hedefinizi seçin.

  3. Build Settings (Derleme Ayarları) sekmesini tıklayın, ardından 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 ve debug information format simgesini arayın.

    2. Tüm derleme türleriniz için Debug Information FormatDWARF with dSYM File olarak ayarlayın.

  4. Build Phases (Derleme Aşamaları) sekmesini tıklayın, ardından Xcode'un dSYM'lerinizi işleyebilmesi ve dosyaları yükleyebilmesi için aşağıdaki adımları tamamlayın.

    1. > New Run Script Phase'i (Yeni Çalıştırma Komut Dosyası Aşaması) tıklayın.

      Bu yeni Run Script (Komut Dosyasını Ç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. Senaryo alanına (Shell etiketinin altında bulunur) aşağıdaki çalıştırma senaryosunu ekleyin.

      Bu komut dosyası, projenizin dSYM dosyalarını işler ve dosyaları Crashlytics'ya 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)
      Proje derleme ayarlarınızda ENABLE_USER_SCRIPT_SANDBOXING=YES ve ENABLE_DEBUG_DYLIB=YES varsa aşağıdakileri ekleyin:
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

dSYM dosyaları ve Crashlytics hakkında daha ayrıntılı bilgi edinmek (dSYM dosyalarını manuel olarak yükleme dahil) için Kod karartması kaldırılmış kilitlenme raporlarını alma başlıklı makaleyi inceleyin.

3. adım: Kurulumu tamamlamak için testin kilitlenmesini zorlayın

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

  1. Uygulamanıza, test sırasında kilitlenmeyi zorlamak için kullanabileceğiniz bir kod ekleyin.

    Uygulamanıza, basıldığında kilitlenmeye neden olan bir düğme eklemek için aşağıdaki kodu kullanabilirsiniz. Düğme "Test Çökmesi" 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ı bağlantısı kesilmişken uygulamanızı Xcode'da oluşturup çalıştırın.

    1. Uygulamanızı bir test cihazında veya simülatörde oluşturmak için Build and then run the current scheme (Oluştur ve ardından mevcut şemayı çalıştır) seçeneğini tıklayın.

    2. Uygulamanız çalışana kadar bekleyin, ardından uygulamanızın ilk örneğini kapatmak için Şemayı veya işlemi çalıştırmayı durdur'u tıklayın. Bu ilk örnek, Crashlytics ile çakışan hata ayıklayıcıyı içeriyordu.

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

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

    2. Uygulamanızda, yukarıdaki kodu kullanarak eklediğiniz "Test Crash" (Test Kilitlenmesi) düğmesine basın.

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

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

    Konsolu yenilemenize rağmen beş dakika sonra hâlâ test kilitlenmesini görmüyorsanız uygulamanızın kilitlenme raporları gönderip göndermediğini görmek için hata ayıklama günlüğünü etkinleştirin.


Hepsi bu kadar. Crashlytics artık uygulamanızda kilitlenmeleri izliyor. Tüm raporlarınızı ve istatistiklerinizi görüntülemek ve incelemek için Crashlytics kontrol panelini ziyaret edin.

Sonraki adımlar

  • Kilitlenme raporu kurulumunuzu özelleştirin (isteğe bağlı raporlama, günlükler, anahtarlar ve önemli olmayan hataların izlenmesi ekleyerek).