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
Henüz yapmadıysanız Apple projenize Firebase'i ekleyin. Apple uygulamanız yoksa örnek bir uygulama indirebilirsiniz.
Ö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
bölümündeki > Proje ayarları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.
- Xcode'da, uygulamanız açıkken File > Add Packages (Dosya > Paket Ekle) seçeneğine gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Crashlytics kitaplığını seçin.
- 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
-ObjC
işaretini hedefinizin derleme ayarlarının Other Linker Flags (Diğer Bağlayıcı İşaretleri) bölümüne ekleyin.- (Yalnızca macOS)
Info.plist
dosyanıza anahtarı ekleyinNSApplicationCrashOnExceptions
ve bunuYES
olarak ayarlayın. - İşlem tamamlandığında Xcode otomatik olarak arka planda bağımlılarınızı çözümlemeye ve indirmeye başlar.
https://github.com/firebase/firebase-ios-sdk.git
Ardından, Firebase modülünü yapılandırın:
Firebase modülünü
App
yapınıza veyaUIApplicationDelegate
yapınıza aktarın:Swift
import Firebase
Objective-C
@import Firebase;
Genellikle uygulama temsilcinizin
FirebaseApp
yöntemindeapplication(_: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.
Projenizin Xcode çalışma alanını açın, ardından sol gezinicide proje dosyasını seçin.
HEDEFLER listesinden ana derleme hedefinizi seçin.
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.
Tümü'nü tıklayın ve
debug information format
simgesini arayın.Tüm derleme türleriniz için Debug Information Format'ı
DWARF with dSYM File
olarak ayarlayın.
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.
> 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.
Yeni Komut Dosyası Çalıştır bölümünü genişletin.
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"
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
Proje derleme ayarlarınızda$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YES
veENABLE_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.
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
Xcode hata ayıklayıcısı bağlantısı kesilmişken uygulamanızı Xcode'da oluşturup çalıştırın.
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.Uygulamanız çalışana kadar bekleyin, ardından uygulamanızın ilk örneğini kapatmak için Crashlytics ile çakışan hata ayıklayıcıyı içeriyordu.
Şemayı veya işlemi çalıştırmayı durdur'u tıklayın. Bu ilk örnek,
Uygulamanızın ilk kilitlenme raporunu göndermek için test kilitlenmesini zorlayın:
Uygulamanızı test cihazınızın veya simülatörünüzün ana ekranından açın.
Uygulamanızda, yukarıdaki kodu kullanarak eklediğiniz "Test Crash" (Test Kilitlenmesi) düğmesine basın.
Uygulamanız kilitlendikten sonra, kilitlenme raporunu Firebase'e gönderebilmesi için uygulamayı Xcode'dan tekrar çalıştırın.
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).