Crashlytics kontrol panelinde okunabilir kilitlenme raporları alma (Flutter)

Platform seçin: iOS+ Android Flutter Unity


Firebase Crashlytics, kilitlenme raporlarının kodunun çözülmesini ve okunabilir olmasını sağlayan gerekli sembol dosyalarını yüklemek için Flutter projenizi varsayılan olarak otomatik şekilde hazırlar.

Maalesef projenin tam olarak yapılandırılmamasına neden olabilecek durumlar vardır. Bu kılavuzda, otomasyonun ne işe yaradığı açıklanmakta ve proje kurulumunuzda hata ayıklama için ilk adımlar sunulmaktadır.

Apple platformları

dSYM dosyalarını yüklemek için yapılandırmanızı kontrol edin

Crashlytics Flutter eklentisini ekleyip flutterfire configure komutunu çalıştırdığınızda, projenizin Xcode çalışma alanına gerekli dSYM sembol dosyalarını bulup Crashlytics platformuna yükleyen bir çalıştırma komut dosyası eklenmeye çalışılır. Bu dosyalar olmadan Crashlytics kontrol panelinde "Eksik dSYM" uyarısı görürsünüz ve eksik dosyalar yüklenene kadar istisnalar arka uç tarafından tutulur.

Bu sorunla karşılaşırsanız öncelikle çalıştırma komut dosyasının yüklü olduğundan emin olun:

  1. Projenizin iOS dizininde (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace) Xcode çalışma alanı dosyasını bulup açın.

  2. Runner hedefinin Derleme Aşamaları'na [firebase_crashlytics] Crashlytics Upload Symbols başlıklı bir çalıştırma komut dosyasının eklenip eklenmediğini belirleyin.

    Çalıştırma komut dosyasının bulunmadığı veya çalıştırma komut dosyasının bulunduğu durumlar için aşağıdaki ilgili bölüme bakın.

Flutter ve Crashlytics için sürüm yapılandırmanızı kontrol edin (--split-debug-info işaretini kullanıyorsanız)

Flutter projeniz --split-debug-info işaretini (ve isteğe bağlı olarak --obfuscate işaretini de) kullanıyorsa uygulamanız için okunabilir yığın izlemeleri göstermek üzere ek adımlar gerekir.

Projenizin Flutter sembollerini (dSYM dosyaları) otomatik olarak oluşturup Crashlytics platformuna yükleyebilmesi için projenizde önerilen sürüm yapılandırmasının (Flutter 3.12.0+ ve Crashlytics Flutter eklentisi 3.3.4+) kullanıldığından emin olun.

Android

Bağımlılık yapılandırmanızı kontrol edin

flutterfire configure komutu, projenizin Gradle derleme dosyalarına gerekli bağımlılıkları eklemeye çalışır. Bu bağımlılıklar olmadan, gizleme etkinleştirilirse Firebase konsolundaki kilitlenme raporları gizlenebilir.

Proje düzeyindeki build.gradle ve uygulama düzeyindeki build.gradle dosyalarında aşağıdaki satırların bulunduğundan emin olun:

  • Proje düzeyindeki derleme dosyasında (android/build.gradle) aşağıdaki satırı kontrol edin:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • Uygulama düzeyindeki derleme dosyasında (android/app/build.gradle) aşağıdaki satırı kontrol edin:

    // ... other imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'

Flutter sembollerini yüklemek için KSA'yı kullandığınızdan emin olun (--split-debug-info işaretini kullanıyorsanız).

Flutter projeniz --split-debug-info işaretini (ve isteğe bağlı olarak --obfuscate işaretini de) kullanıyorsa uygulamanız için okunabilir yığın izlemeleri göstermek üzere ek adımlar gerekir.

Flutter hata ayıklama sembollerini yüklemek için Firebase CLI'yı (v.11.9.0+) kullanın. Karartılmış kod derlemesinden kaynaklanan bir kilitlenmeyi bildirmeden önce hata ayıklama simgelerini yüklemeniz gerekir.

Flutter projenizin kök dizininden aşağıdaki komutu çalıştırın:

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID: Firebase Android uygulama kimliğiniz (paket adınız değil)
    Örnek Firebase Android uygulama kimliği: 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO/symbols: Uygulamayı oluştururken --split-debug-info işaretine ilettiğiniz dizin

Sorunlar devam ederse Android'e özel gizlenmiş raporlarla ilgili sorun giderme kılavuzuna bakın.