Bu hızlı başlangıç kılavuzunda, Firebase Crashlytics hizmetini Crashlytics Flutter eklentisiyle uygulamanızda nasıl ayarlayacağınız açıklanmaktadır. Böylece, Firebase konsolunda kapsamlı kilitlenme raporları alabilirsiniz.
Crashlytics kurulumu için hem komut satırı aracı hem de IDE'niz kullanılır. Kurulumu tamamlamak için ilk kilitlenme raporunuzu Firebase'e göndermek üzere test istisnasının zorunlu olarak oluşturulmasını sağlamanız gerekir.
Başlamadan önce
Henüz yapmadıysanız Flutter projenizde Firebase'i yapılandırın ve başlatın.
Ö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.
Ayrıntılı hata mesajı günlüklerinin, Crashlytics tarafından desteklenen tüm Android ve Apple platformlarında (watchOS hariç) kullanılabildiğini unutmayın.
1. adım: Flutter projenize Crashlytics öğesini ekleyin
Crashlytics için Flutter eklentisini yüklemek üzere Flutter projenizin kökünden aşağıdaki komutu çalıştırın.
Ayrıntılı günlüklerden yararlanmak için uygulamanıza Google Analytics Flutter eklentisini de ekleyin. Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
Flutter projenizin kök dizininden aşağıdaki komutu çalıştırın:
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.
İşlem tamamlandığında Flutter projenizi yeniden oluşturun:
flutter run
(İsteğe bağlı) Flutter projeniz
--split-debug-info
işaretini (ve isteğe bağlı olarak--obfuscate
işaretini) kullanıyorsa uygulamalarınız için okunabilir yığın izlemeleri göstermek üzere ek adımlar uygulamanız gerekir.Apple platformları: Projenizin, Flutter sembollerini (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 Crashlytics Flutter eklentisi 3.3.4+) kullandığından emin olun.
Android: Flutter hata ayıklama sembollerini yüklemek için Firebase CLI'yı (11.9.0 sürümü veya üzeri) kullanın. Karartılmış kod derlemesinden kilitlenme raporu göndermeden önce hata ayıklama sembollerini 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 dizinle aynı olmalıdır.
2. adım: Kilitlenme işleyicilerini yapılandırın
Flutter çerçevesinde oluşturulan tüm hataları FlutterError.onError
ile FirebaseCrashlytics.instance.recordFlutterFatalError
'yi geçersiz kılarak otomatik olarak yakalayabilirsiniz:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// Pass all uncaught "fatal" errors from the framework to Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
runApp(MyApp());
}
Flutter çerçevesi tarafından işlenmeyen eşzamansız hataları yakalamak için PlatformDispatcher.instance.onError
kullanın:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = (errorDetails) {
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
};
// Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(MyApp());
}
Diğer hata türlerinin nasıl ele alınacağına dair örnekler için Kilitlenme raporlarını özelleştirme başlıklı makaleyi inceleyin.
3. adım: Kurulumu tamamlamak için testin kilitlenmesini zorlayın
Crashlytics kurulumunu tamamlamak ve Crashlytics kontrol panelinde ilk verileri görmek için bir test istisnası oluşturmanız gerekir.Firebase
Uygulamanıza, test istisnasının zorunlu olarak oluşturulmasını sağlamak için kullanabileceğiniz bir kod ekleyin.
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
'ı üst düzeyZone
'e çağıran bir hata işleyici eklediyseniz uygulamanıza, basıldığında test istisnası oluşturan bir düğme eklemek için aşağıdaki kodu kullanabilirsiniz:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Uygulamanızı derleyip çalıştırın.
Uygulamanızın ilk raporunu göndermek için test istisnasının zorunlu olarak oluşturulmasını sağlayın:
Uygulamanızı test cihazınızdan veya emülatörünüzden açın.
Uygulamanızda, yukarıdaki kodu kullanarak eklediğiniz test istisnası düğmesine basın.
Test kilitlenmenizi görmek için Firebase konsolunun Crashlytics kontrol paneline gidin.
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 ve Android'de önemli olmayan hataları ve ANR'leri 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 ve ek olarak, isteğe bağlı raporlama, günlükler, anahtarlar ve ek olarak ölümcül olmayan hataların izlenmesini ekleyin.
Google Play ile entegrasyon yaparak Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play kanala göre filtreleyebilirsiniz. Bu sayede, kontrol panelinizi belirli derlemelere daha iyi odaklayabilirsiniz.
Android Studio'daki Uygulama Kalitesi Analizleri penceresini kullanarak kodunuzla birlikte yığın izlemelerini ve kilitlenme istatistiklerini görüntüleyin (Electric Eel 2022.1.1 sürümünden itibaren kullanılabilir).