Firebase Crashlytics'i kullanmaya başlayın

Bu hızlı başlangıç, Firebase konsolunda kapsamlı kilitlenme raporları alabilmeniz için uygulamanızda Firebase Crashlytics SDK'sı ile Firebase Crashlytics'i nasıl kuracağınızı açıklar.

Crashlytics'i kurmak, hem Firebase konsolunda hem de IDE'nizde (Firebase yapılandırma dosyası ve Crashlytics SDK'sı eklemek gibi) görevler gerektirir. Kurulumu tamamlamak için ilk kilitlenme raporunuzu Firebase'e göndermek amacıyla bir test kilitlenmesini zorlamanız gerekir.

Sen başlamadan önce

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

  2. Önerilen : Kilitlenme, ölümcül olmayan veya ANR olayına yol açan kullanıcı işlemlerini anlamak amacıyla içerik haritası günlüklerini otomatik olarak almak için Firebase projenizde Google Analytics'i etkinleştirmeniz gerekir.

    • Mevcut Firebase projenizde Google Analytics etkin değilse Google Analytics'i projenizin Entegrasyonlar sekmesinden etkinleştirebilirsiniz. Firebase konsolunda > Proje ayarları .

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

    İçerik haritası günlüklerinin watchOS dışında Crashlytics tarafından desteklenen tüm Apple platformları için mevcut olduğunu unutmayın.

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

Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Paket Yöneticisini kullanın.

  1. Xcode'da uygulama projeniz 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. İçerik haritası günlüklerinden yararlanmak için Google Analytics için Firebase SDK'sını da uygulamanıza ekleyin. Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.
  6. -ObjC bayrağını hedefinizin derleme ayarlarının Diğer Bağlayıcı Bayrakları bölümüne ekleyin.
  7. (yalnızca macOS) Info.plist dosyanıza NSApplicationCrashOnExceptions anahtarını ekleyin ve YES olarak ayarlayın.
  8. Bitirdiğinizde Xcode, bağımlılıklarınızı arka planda otomatik olarak çözmeye ve indirmeye başlayacaktır.

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

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

    Süratli

    import Firebase

    Amaç-C

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

    Süratli

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

    Amaç-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

İnsanların okuyabileceği kilitlenme raporları oluşturmak için Crashlytics'in projenizin hata ayıklama sembolü (dSYM) dosyalarına ihtiyacı vardır. Aşağıdaki adımlarda, uygulamanızı her oluşturduğunuzda dSYM'lerinizi otomatik olarak oluşturacak, işleyecek ve dosyaları yükleyecek şekilde Xcode'un nasıl yapılandırılacağı açıklanmaktadır.

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

  2. HEDEFLER listesinden ana yapı hedefinizi seçin.

  3. Derleme Ayarları sekmesine tıklayın ve ardından Xcode'un derlemeleriniz için dSYM'ler üretmesi için aşağıdaki adımları tamamlayın.

    1. Tümü'nü tıklayın, ardından debug information format arayın.

    2. Tüm yapı türleriniz için Hata Ayıklama Bilgi Formatını DWARF with dSYM File olarak ayarlayın.

  4. Oluşturma Aşamaları sekmesine tıklayın ve ardından Xcode'un dSYM'lerinizi işleyebilmesi ve dosyaları yükleyebilmesi için aşağıdaki adımları tamamlayın.

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

      Bu yeni Komut Dosyasını Çalıştırma aşamasının projenizin son oluşturma aşaması olduğundan emin olun; aksi takdirde Crashlytics dSYM'leri düzgün şekilde işleyemez.

    2. Yeni Komut Dosyasını Ç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üne 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 için (dSYM dosyalarının manuel olarak nasıl yükleneceği dahil), Gizlemesi kaldırılmış kilitlenme raporlarını alın sayfasını ziyaret edin.

3. Adım : Kurulumu tamamlamak için test kilitlenmesini zorunlu kılın

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

  1. Test çökmesini zorlamak için kullanabileceğiniz kodu uygulamanıza ekleyin.

    Uygulamanıza basıldığında çökmeye neden olan bir düğme eklemek için aşağıdaki kodu kullanabilirsiniz. Düğmenin etiketi "Çarpışmayı Test Et"tir.

    SwiftUI

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

    UIKit

    Süratli

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

    Amaç-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. Uygulamanızı Xcode hata ayıklayıcısının bağlantısı kesilmiş halde Xcode'da derleyin ve çalıştırın.

    1. Build'e tıklayın ve ardından uygulamanızı bir test cihazında veya simülatörde oluşturmak için mevcut şemayı çalıştırın .

    2. Uygulamanız çalışana kadar bekleyin ve ardından uygulamanızın ilk örneğini kapatmak için şemayı veya eylemi çalıştırmayı durdur'u . Bu ilk örnek, Crashlytics'e müdahale eden 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" butonuna basın.

    3. Uygulamanız kilitlendikten sonra, uygulamanızın 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 yenilediyseniz ve beş dakika sonra hâlâ test kilitlenmesini göremiyorsanız uygulamanızın kilitlenme raporları gönderip göndermediğini görmek için hata ayıklama günlüğünü etkinleştirin .


Ve bu kadar! Crashlytics artık uygulamanızda çökme olup olmadığını izliyor. Tüm raporlarınızı ve istatistiklerinizi görüntülemek ve araştırmak için Crashlytics kontrol panelini ziyaret edin.

Sonraki adımlar

,

Bu hızlı başlangıç, Firebase konsolunda kapsamlı kilitlenme raporları alabilmeniz için uygulamanızda Firebase Crashlytics SDK'sı ile Firebase Crashlytics'i nasıl kuracağınızı açıklar.

Crashlytics'i kurmak, hem Firebase konsolunda hem de IDE'nizde (Firebase yapılandırma dosyası ve Crashlytics SDK'sı eklemek gibi) görevler gerektirir. Kurulumu tamamlamak için ilk kilitlenme raporunuzu Firebase'e göndermek amacıyla bir test kilitlenmesini zorlamanız gerekir.

Sen başlamadan önce

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

  2. Önerilen : Bir çökme, ölümcül olmayan veya ANR etkinliğine yol açan kullanıcı eylemlerini anlamak için otomatik olarak ekmek kırıntısı günlükleri almak için Firebase projenizdeki Google Analytics'i etkinleştirmeniz gerekir.

    • Mevcut Firebase projenizde Google Analytics etkin değilse, Google Analytics'i entegrasyonlar sekmesinden etkinleştirebilirsiniz. > Firebase konsolundaki proje ayarları .

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

    Breadbrumb günlüklerinin WatchOS hariç Crashlytics tarafından desteklenen tüm Apple platformları için kullanılabilir olduğunu unutmayın.

Adım 1 : Crashlytics SDK'yı uygulamanıza ekleyin

Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Paket Yöneticisi'ni kullanın.

  1. Xcode'da, uygulama projeniz açıkken, dosya> paket eklemek için gidin.
  2. İstendiğinde, Firebase Apple Platforms SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Crashlytics kütüphanesini seçin.
  5. Breadbrumb günlüklerinden yararlanmak için, Google Analytics için Firebase SDK'sını uygulamanıza ekleyin. Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.
  6. -ObjC bayrağını hedefinizin oluşturma ayarlarının diğer bağlayıcı bayraklar bölümüne ekleyin.
  7. (Yalnızca macOS) Info.plist , NSApplicationCrashOnExceptions anahtarını ekleyin ve YES olarak ayarlayın.
  8. Bittiğinde, Xcode otomatik olarak bağımlılıklarınızı arka planda çözmeye 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 aktarın:

    Süratli

    import Firebase

    Amaç-C

    @import Firebase;
  2. FirebaseApp paylaşılan bir örneği, tipik olarak uygulama delegesinin application(_:didFinishLaunchingWithOptions:) Yöntem:

    Süratli

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

    Amaç-C

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

Adım 2 : DSYM dosyalarını otomatik olarak yüklemek için Xcode'u ayarlayın

İnsan okunabilir çarpışma raporları oluşturmak için Crashlytics, projenizin hata ayıklama sembolü (DSYM) dosyalarına ihtiyaç duyar. Aşağıdaki adımlarda, DSym'lerinizi otomatik olarak üretmek, işlemek ve uygulamanızı her oluşturduğunuzda dosyaları yükleyecek şekilde XCODE'nin nasıl yapılandırılacağını açıklar.

  1. Projenizin Xcode çalışma alanını açın, ardından Sol Navigator'daki proje dosyasını seçin.

  2. Hedefler listesinden ana derleme hedefinizi seçin.

  3. Oluştur Ayarları sekmesini tıklayın, ardından Xcode'un yapılarınız için DSYMS üretmesi için aşağıdaki adımları tamamlayın.

    1. Hepsini tıklayın, ardından debug information format arayın.

    2. Tüm derleme türleriniz için DWARF with dSYM File hata ayıklama bilgileri formatını ayarlayın.

  4. Xcode'un DSym'lerinizi işleyebilmesi ve dosyaları yükleyebilmesi için aşağıdaki adımları tamamlayın.

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

      Bu yeni çalışma komut dosyası aşamasının projenizin son derleme aşaması olduğundan emin olun; Aksi takdirde, çökme DSym'leri düzgün bir şekilde işleyemez.

    2. Yeni çalışma komut dosyası bölümünü genişletin.

    3. Komut dosyası alanında ( kabuk etiketinin altında bulunur), aşağıdaki çalışma 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üne, aşağıdaki dosyaların yerleri için yolları 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 (DSYM dosyalarını manuel olarak nasıl yükleyeceği dahil) hakkında daha ayrıntılı bilgi için, DeObFuscated Crash Reports'ı ziyaret edin .

Adım 3 : Bir test kazasını kurmayı bitirmek için zorla

Crashlytics'i kurmayı bitirmek ve Firebase konsolunun Crashlytics panosundaki ilk verileri görmek için bir test kazasını zorlamanız gerekir.

  1. Bir test kazasını zorlamak için kullanabileceğiniz uygulamanıza kod ekleyin.

    Uygulamanıza basıldığında çökmeye neden olan bir düğme eklemek için aşağıdaki kodu kullanabilirsiniz. Düğme "Test Kazası" olarak etiketlenmiştir.

    SwiftUI

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

    Uikit

    Süratli

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

    Amaç-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ı kesildiğinde uygulamanızı Xcode'da oluşturun ve çalıştırın.

    1. Build'ı tıklayın ve ardından uygulamanızı bir test cihazına veya simülatörüne oluşturmak için geçerli şemayı çalıştırın .

    2. Uygulamanız çalışana kadar bekleyin, ardından uygulamanızın ilk örneğini kapatmak için şemayı veya eylemi çalıştırmayı durdurun Bu ilk örnek, kaza gibi müdahale eden hata ayıklayıcısını içeriyordu.

  3. Uygulamanızın ilk çarpışma raporunu göndermek için test kazasını zorla:

    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 Çarpma" düğmesine basın.

    3. Uygulamanız çöktükten sonra, uygulamanız Crash raporunu Firebase'e gönderebilmesi için Xcode'dan tekrar çalıştırın.

  4. Test çökmenizi görmek için Firebase Konsolunun Crashlytics Gösterge Panosuna gidin.

    Konsolu yenilediyseniz ve hala beş dakika sonra test kazasını görmüyorsanız, uygulamanızın çarpışma raporları gönderip göndermediğini görmek için hata ayıklama günlüğünü etkinleştirin .


Ve bu kadar! Crashlytics artık uygulamanızı çökmeler için izliyor. Tüm raporlarınızı ve istatistiklerinizi görüntülemek ve araştırmak için Crashlytics kontrol panelini ziyaret edin.

Sonraki adımlar