DEV Community

Gülsen Keskin
Gülsen Keskin

Posted on

Flutter ile Firebase Crashlytics Kullanımı 💫 🌌 ✨

Bu öğretici Firebase konsolunda kapsamlı crash (kilitlenme) raporları alabilmeniz için Crashlytics Flutter eklentisi ile uygulamanızda Firebase Crashlytics'i nasıl kuracağınızı açıklar.

Firebase projesi oluşturun

Adresine giderek önce visit console sonra açılan pencereden Add project butonuna tıklayarak firabase projesi oluşturun.

Image description

Google Analytics alanının seçili olmasına dikkat edin

Image description

Image description

Image description

npm ile Firebase CLI kurun
(flutterfire komutunu çalıştırabilmek için bu adım gereklidir.)

npm install -g firebase-tools

Google hesabınızı kullanarak Firebase'e giriş yapın:

Aşağıdaki komutu çalıştırarak Google hesabınızı kullanarak Firebase'e giriş yapın:

firebase login

Image description

Firebase projelerinizi listeleyerek CLI'nin düzgün şekilde yüklenip yüklenmediğini ve hesabınıza erişildiğini test edin. Aşağıdaki komutu çalıştırın:

firebase projects:list

FlutterFire CLI'yi kurun
Herhangi bir dizinden aşağıdaki komutu çalıştırarak FlutterFire CLI'yi kurun:

dart pub global activate flutterfire_cli

Ortam değişkenlerinizdeki path alanına uyarıda çıkan yolu ekleyin

örnek:
Image description

Flutter projenize Crashlytics ekleyin

Crashlytics Flutter eklentisini kurmak için terminalinizi yönetici olarak çalıştırdıktan sonra flutter projenizin bulunduğu yolda aşağıdaki komutları çalıştırın:

flutter pub add firebase_crashlytics

flutterfire configure

Bu komutu çalıştırmak, Flutter uygulamanızın Firebase yapılandırmasının güncel olmasını sağlar ve Android için gerekli Crashlytics Gradle eklentisini uygulamanıza ekler.

flutterfire configure Komutunu çalıştırdıktan sonra aşağıdaki gibi oluşturduğunuz firebase projesini seçerek enter tuşuna basın.

Image description

Son olarak platform seçerek enter tuşuna basın (android ve ios seçili olarak gelecektir enter tuşuna basarak ilerleyebilirsiniz.)

Image description

Bu işlemin sonunda android ve ios için iki farklı app id oluşur.

Image description

android\build.gradle dosyanıza resimdeki gibi aşağıdaki satırları ekleyin

 // START: FlutterFire Configuration
        classpath 'com.google.gms:google-services:4.3.10'
        // END: FlutterFire Configuration
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
Enter fullscreen mode Exit fullscreen mode

Image description

android\app\build.gradle dosyanıza resimdeki gibi aşağıdaki satırları ekleyin

Image description


// START: FlutterFire Configuration
apply plugin: 'com.google.gms.google-services'
// END: FlutterFire Configuration
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

dependencies {
   ...
}
}

apply plugin: 'com.google.firebase.crashlytics'
Enter fullscreen mode Exit fullscreen mode

Tamamlandığında, Flutter projenizi çalıştırın:

flutter run

Firebase projeniz resimdeki gibi gözükmelidir

Image description

(İsteğe bağlı) Flutter projeniz --split-debug-info bayrağını (ve isteğe bağlı olarak --obfuscate bayrağını ) kullanıyorsa, Android sembollerini yüklemek için Firebase CLI'yi (v.11.9.0+) kullanmanız gerekir.

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

firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols

PATH/TO/symbols dizini, uygulamayı oluştururken --split-debug-info bayrağına ilettiğiniz dizinle aynıdır.

Configure crash handlers

FlutterError.onError'u FirebaseCrashlytics.instance.recordFlutterFatalError ile geçersiz kılarak Flutter framework içinde oluşan tüm hataları otomatik olarak yakalayabilirsiniz:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  // Pass all uncaught errors from the framework to Crashlytics.
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}
Enter fullscreen mode Exit fullscreen mode

Kurulumu test etmek için bir hata döndürün

TextButton(
    onPressed: () => throw Exception(),
    child: const Text("Throw Test Exception"),
),
Enter fullscreen mode Exit fullscreen mode

Uygulamanızı çalıştırın.

Uygulamanızın ilk raporunu göndermek için eklediğiniz Throw Test Exception butonuna tıklayın:

Test çökmenizi görmek için Firebase konsolunun Crashlytics panosuna gidin.

Image description

Konsolu yenilediyseniz ve beş dakika sonra test çökmesini hâlâ 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 .

Kaynaklar:
Firebase CLI kurun
Firebase'i uygulamanıza ekleyin
crashlytics
flutterfire-is-not-recognized
https://firebase.google.com/docs/crashlytics

Top comments (7)

Collapse
 
batuhansavasyilmaz profile image
Batuhan Savaş Yılmaz

Çok faydalı bir yazı oldu. Emeğinize sağlık.

Collapse
 
gulsenkeskin profile image
Gülsen Keskin

Rica ederim işinize yaradıysa ne mutlu :)

Collapse
 
batuhansavasyilmaz profile image
Batuhan Savaş Yılmaz

Çok yaradı hem de :) Sorun olmaz ise, bir türlü çözemediğim bir problemim var. 2 sayfalı bir uygulamamda ana sayfadan 2.sayfaya geçerken ana sayfadaki reklamı dispose edemiyorum. Vaktiniz olursa bakabilir misiniz?
groups.google.com/g/google-admob-a...

Rize'den selamun aleyküm.

Thread Thread
 
gulsenkeskin profile image
Gülsen Keskin

Aleykümselam :) reklam eklemeyi hiç denemedim ama vakit bulunca bakmak isterim.
Şu an için aklıma gelen Navigator.push yapmadan önce _bannerAd!.dispose();
yöntemini çağırmayı denediniz mi? Belki işe yarar.

Thread Thread
 
batuhansavasyilmaz profile image
Batuhan Savaş Yılmaz

Teşekkür ederim. Maalesef bunu da denedim işe yaramadı. Zahmet vericem biraz hakkınızı helal edin:)

Collapse
 
indieflutterist profile image
Pia

Crashlytics ve analytics web için çalışıyor mu?

Collapse
 
gulsenkeskin profile image
Gülsen Keskin • Edited

Ben web için hiç denemedim ama ChatGPT çalıştığını söylüyor :D
"Firebase Crashlytics ve analytics, mobil cihazların yanı sıra web üzerinde de kullanılabilir. Firebase'i web'de kullanmak için web uygulamanıza Firebase JavaScript kitaplıklarını dahil etmeniz ve Firebase projenizin yapılandırma ayrıntılarını kullanarak Firebase'i başlatmanız gerekir. Bunu yaptıktan sonra, web üzerinde Crashlytics ve analytic gibi Firebase özelliklerine erişmek için bir mobil uygulamada kullanacağınız API'leri kullanabilirsiniz."