Bu hızlı başlangıç kılavuzunda, Firebase konsolunda kapsamlı kilitlenme raporları alabilmek için uygulamanızda Crashlytics Flutter eklentisiyle Firebase Crashlytics'ü nasıl ayarlayacağınız açıklanmaktadır.
Crashlytics'ü ayarlamak için hem komut satırı aracını hem de IDE'nizi kullanmanız gerekir. İlk kilitlenme raporunuzu Firebase'e göndermek için kurulumu tamamlamak üzere bir test istisnası atılmasını zorlamanı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 ekmek kırıntıları günlüklerini otomatik olarak almak istiyorsanız Firebase projenizde Google Analytics'i etkinleştirmeniz gerekir.
Mevcut Firebase projenizde Google Analytics etkin değilse Firebase konsolunda
bölümündeki > Proje ayarlarıEntegrasyonlar sekmesinden Google Analytics'ü etkinleştirebilirsiniz. Yeni bir Firebase projesi oluşturuyorsanız proje oluşturma iş akışı sırasında Google Analytics politikasını etkinleştirin.
Crashlytics tarafından desteklenen tüm Android ve Apple platformlarında (watchOS hariç) içerik haritası günlüklerinin 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 uygulamanıza Google Analytics için 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 uygulamanıza gerekli Crashlytics Gradle eklentisini ekler.
İşlem tamamlandığında Flutter projenizi yeniden oluşturun:
flutter run
(İsteğe bağlı) Flutter projenizde
--split-debug-info
işareti (ve isteğe bağlı olarak--obfuscate
işareti) kullanılıyorsa uygulamalarınızın okunabilir yığın izlemelerini göstermek için ek adımlar gerekir.Apple platformları: Projenizin Flutter simgelerini (dSYM dosyaları) otomatik olarak oluşturup Crashlytics'ye 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: Flutter hata ayıklama simgelerini 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şaretçisine ilettiğiniz dizin
2. adım: Kilitlenme işleyicilerini yapılandırın
FlutterError.onError
yerine FirebaseCrashlytics.instance.recordFlutterFatalError
yazarak Flutter çerçevesi içinde oluşturulan tüm hataları 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 asenkron hataları yakalamak için PlatformDispatcher.instance.onError
:
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 test kilitlenmesini zorlama
Crashlytics ayarlarını tamamlamak ve Firebase konsolunun Crashlytics kontrol panelinde ilk verileri görmek için bir test istisnasının atılmasını zorlamanız gerekir.
Uygulamanıza, test istisnasının atılmasını zorlamak için kullanabileceğiniz kod ekleyin.
Üst düzey
Zone
alanınaFirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
çağıran bir hata işleyici eklediyseniz uygulamanıza, basıldığında test istisnası atanacak 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 atılmasını zorunlu kılın:
Uygulamanızı test cihazınızdan veya emülatörden 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 yeniledikten sonra beş dakika geçmesine rağmen testin kilitlendiğini görmüyorsanız uygulamanızın kilitlenme raporu gönderip göndermediğini görmek için hata ayıklama günlük kaydını etkinleştirin.
Hepsi bu kadar. Crashlytics artık uygulamanızı kilitlenmeler ve Android'de önemli olmayan hatalar ile ANR'ler açısından izliyor. Tüm rapor ve istatistiklerinizi görüntülemek ve incelemek için Crashlytics kontrol panelini ziyaret edin.
Sonraki adımlar
Etkinleştirme raporları, günlükler, anahtarlar ve önemli olmayan diğer hataların izlenmesini ekleyerek kilitlenme raporu ayarlarınızı özelleştirin.
Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play izlemeye göre filtreleyebilmek için Google Play ile entegrasyon yapın. Bu sayede kontrol panelinizde belirli derlemelere daha fazla odaklanabilirsiniz.
Android Studio'daki Uygulama Kalitesi Analizleri penceresiyle kodunuzun yanında yığın izlemelerini ve kilitlenme istatistiklerini görüntüleyin (Electric Eel 2022.1.1 sürümünden itibaren kullanılabilir).