Crashlytics kontrol panelinden okunabilir kilitlenme raporları alın


Varsayılan olarak Firebase Crashlytics, Flutter projenizi otomatik olarak araçlandırır. Böylece, kilitlenme raporlarının kodun gizlenmemesi ve okunabilir olması için gerekli simge dosyalarını yükler.

Maalesef projenin tam olarak yapılandırılmaması ile sonuçlanabilecek durumlar vardır. Bu kılavuzda, otomasyonun ne yaptığı özetlenmiştir ve proje kurulumunuzda hata ayıklamayla ilgili ilk adımlar verilmiştir.

Apple platformları

dSYM dosyalarını yükleme yapılandırmanızı kontrol etme

Crashlytics Flutter eklentisini ekleyip flutterfire configure komutunu çalıştırdığınızda, projenizin Xcode çalışma alanına gerekli dSYM simge dosyalarını bulup Crashlytics'e yükleyen bir çalıştırma komut dosyası eklemeye ç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şıyorsanı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 Build Phases'ine [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ı yoktur veya çalıştırma komut dosyası vardır olup olmadığına göre 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şareti kullanılıyorsa)

Flutter projenizde --split-debug-info işareti (ve isteğe bağlı olarak --obfuscate işareti) kullanılıyorsa uygulamanızın okunabilir yığın izlemelerini göstermek için ek adımlar gerekir.

Projenizin Flutter simgelerini (dSYM dosyaları) otomatik olarak oluşturup Crashlytics'e yükleyebilmesi için önerilen sürüm yapılandırmasını (Flutter 3.12.0 ve sonraki sürümler ile Crashlytics Flutter eklentisi 3.3.4 ve sonraki sürümler) kullandığından emin olun.

Android

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

flutterfire configure komutu, projenizin Gradle derleme dosyalarına gerekli bağımlılıkları eklemeye çalışır. Bu bağımlılık olmadan, karartma etkinse Firebase konsolundaki kilitlenme raporları karartılmış olabilir.

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şareti kullanılıyorsa)

Flutter projenizde --split-debug-info işareti (ve isteğe bağlı olarak --obfuscate işareti) kullanılıyorsa uygulamanızın okunabilir yığın izlemelerini göstermek için ek adımlar gerekir.

Flutter hata ayıklama sembollerini yüklemek için Firebase CLI'yi (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)
    Firebase Android uygulama kimliği örneği: 1:567383003300:android:17104a2ced0c9b9b

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

Sorunlar devam ederse gizlenmiş raporlarla ilgili sorunları gidermeyle ilgili Android'e özel kılavuzu inceleyin.