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:
Projenizin iOS dizininde (
FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace
) Xcode çalışma alanı dosyasını bulup açın.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.
dSYM'lerin otomatik olarak yüklenmesi için çalıştırılacak komut dosyası yoktur.
Bu çalıştırma komut dosyası yoksa manuel olarak ekleyebilirsiniz:
Apple uygulamanızın Firebase uygulama kimliğini bulun. Bu kimliği bulabileceğiniz iki farklı yer vardır:
Firebase konsolunda
'na gidin. Uygulamalarınız kartına gidin, ardından Firebase Apple uygulamanızı tıklayarak uygulama kimliği dahil olmak üzere uygulamanın bilgilerini görüntüleyin. > Proje ayarları Flutter projenizin üst düzey dizininde
firebase_options.dart
dosyanızı bulun. Apple uygulamanızın Firebase uygulama kimliğiGOOGLE_APP_ID
olarak etiketlenir.
> Yeni Komut Dosyası Çalıştırma Aşaması'nı tıklayın.
Bu yeni Komut Dosyası Ç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.
Komut dosyası alanına (Kabuk etiketinin altında bulunur) aşağıdaki çalıştırma komut dosyalarını ekleyin.
Bu komut dosyaları, dSYM dosyalarınızı işler ve dosyaları Crashlytics adresine yükler.
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai
FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai
FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM- FIREBASE_APP_ID: Firebase Apple uygulama kimliğiniz (Apple paket kimliğiniz değil)
Firebase Apple uygulama kimliği örneği:1:1234567890:ios:321abc456def7890
Firebase uygulama kimliğinizi bulmanız mı gerekiyor?
Firebase uygulama kimliğinizi bulmanın iki yolu vardır:
GoogleService-Info.plist
dosyanızdaki uygulama kimliğinizGOOGLE_APP_ID
değeridir veyaFirebase konsolunda Proje ayarlarınıza gidin. Uygulamalarınız kartına gidin ve uygulama kimliğini bulmak için istediğiniz Firebase uygulamasını tıklayın.
- FIREBASE_APP_ID: Firebase Apple uygulama kimliğiniz (Apple paket kimliğiniz değil)
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)
Bu dosyaların konumlarının neden gerekli olduğunu anlama
Xcode, derleme dosyalarının çalıştırma komut dosyası için kullanılabilir olduğundan emin olmak amacıyla bu giriş dosyalarını belirtilen konumlarda arar. Ayrıca, Kullanıcı Komut Dosyası Korumalı Alanı etkinse Xcode, çalıştırma komut dosyasının yalnızca Giriş Dosyaları'nda belirtilen dosyalara erişmesine izin verir.
- Projenizin dSYM dosyalarının konumunu sağlayarak Crashlytics'ün dSYM'leri işlemesini sağlayabilirsiniz.
- Uygulamanızın derlenmiş
GoogleService-Info.plist
dosyasının konumunu sağlayarak Crashlytics'un dSYM'leri Firebase uygulamanızla ilişkilendirmesini sağlayabilirsiniz. - Uygulamanızın yürütülebilir dosyasının konumunu belirtmek, çalıştırma komut dosyasının aynı dSYM'nin yinelenen yüklemelerini önlemesine olanak tanır. Uygulama ikili dosyalarının yüklenmediğini unutmayın.
dSYM'lerin otomatik olarak yüklenmesi için komut dosyası çalıştırın
Çalıştırma komut dosyası mevcutsa dSYM sorunlarını gidermeyle ilgili Apple'a özel kılavuzu inceleyin. dSYM dosyalarınızı açıklanan işlemle yüklemeyi seçerseniz aşağıdaki ek adımları uygulamanız gerekir:
Apple uygulamanızın Firebase uygulama kimliğini bulun. Bu kimliği bulabileceğiniz iki farklı yer vardır:
Firebase konsolunda
'na gidin. Uygulamalarınız kartına gidin, ardından Firebase Apple uygulamanızı tıklayarak uygulama kimliği dahil olmak üzere uygulamanın bilgilerini görüntüleyin. > Proje ayarları Flutter projenizin üst düzey dizininde
firebase_options.dart
dosyanızı bulun. Apple uygulamanızın Firebase uygulama kimliğiGOOGLE_APP_ID
olarak etiketlenir.
upload-symbols
komut dosyasını çalıştırırken yerine-gsp /path/to/GoogleService-Info.plist
kullanın.-ai FIREBASE_APPLE_APP_ID
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
Firebase uygulama kimliğinizi bulmanız mı gerekiyor?
Firebase uygulama kimliğinizi bulmanın iki yolu vardır:
google-services.json
dosyanızdaki uygulama kimliğinizmobilesdk_app_id
değeridir veyaFirebase konsolunda Proje ayarlarınıza gidin. Uygulamalarınız kartına gidin ve uygulama kimliğini bulmak için istediğiniz Firebase uygulamasını tıklayın.
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.