| Platform seçin: | iOS+ Android Android NDK Flutter Unity |
Bu kılavuzda, Flutter uygulamanızda Firebase Crashlytics'yı kullanmaya nasıl başlayacağınız açıklanmaktadır.
Uygulamanızda Crashlytics Flutter eklentisini ayarladıktan sonra 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ı oluşturmanız gerekir.
Başlamadan önce
Henüz yapmadıysanız Flutter projenizde Firebase'i yapılandırıp başlatın.
Önerilir: Kilitlenme, önemli olmayan hata veya ANR etkinliğine yol açan kullanıcı işlemlerini anlamak için breadcrumb kaydı otomatik olarak almak istiyorsanız Firebase projenizde Google Analytics özelliğini etkinleştirmeniz gerekir.
Yeni bir Firebase projesi oluşturuyorsanız proje oluşturma iş akışı sırasında Google Analytics etkinleştirin.
Google Analytics'in etkinleştirilmediği mevcut bir Firebase projesi kullanıyorsanız Firebase konsolunun
Ayarlar > Entegrasyonlar sayfasında etkinleştirebilirsiniz.
Açıklama metni 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 ekleyin
Crashlytics için Flutter eklentisini yüklemek üzere Flutter projenizin kökünden aşağıdaki komutu çalıştırın.
Breadcrumb günlüklerinden yararlanmak için Google Analytics Flutter eklentisini de uygulamanıza ekleyin. Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.
flutter pub add firebase_crashlytics && flutter pub add firebase_analyticsFlutter projenizin kök dizininden aşağıdaki komutu çalıştırın:
flutterfire configureBu 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-infoişaretini (ve isteğe bağlı olarak--obfuscateiş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'a 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 KSA'yı (v.11.9.0+) kullanın. Karartılmış kod derlemesinden kilitlenme bildirmeden ö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:17104a2ced0c9b9bPATH/TO/symbols: Uygulamayı oluştururken--split-debug-infoişaretine ilettiğiniz dizinle aynı dizin
2. adım: Kilitlenme işleyicilerini yapılandırın
Flutter çerçevesinde oluşan 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ürlerini ele alma örnekleri 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 Firebase konsolunun Crashlytics kontrol panelinde ilk verileri görmek için test istisnası oluşturulmasını zorlamanız gerekir.
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)öğesini çağıran bir hata işleyici eklediysenizZoneüst düzeyine, uygulamanıza aşağıdaki kodu kullanarak bir düğme ekleyebilirsiniz. Bu düğmeye basıldığında test istisnası oluşturulur:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),Uygulamanızı oluşturup ç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.
Firebase konsolunda, test kilitlenme raporunuzu kontrol etmek için DevOps & Engagement > 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 kritik olmayan hataların izlenmesini ekleyin.
Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play kanalıyla filtreleyebilmek için Google Play ile entegrasyon 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).
Verilerinizi BigQuery veya Cloud Logging'a aktararak verilerinize sorgu gönderme, özel kontrol panelleri oluşturma ve özel uyarılar ayarlama gibi gelişmiş analiz ve özelliklerden yararlanın.