Bu hızlı başlangıç kılavuzunda, Firebase konsolunda kapsamlı kilitlenme raporları almak için uygulamanızda Firebase Crashlytics'i Crashlytics Flutter eklentisiyle nasıl ayarlayacağınız açıklanmaktadır.
Crashlytics kurulumu, hem komut satırı aracı hem de IDE'nizin kullanılmasını gerektirir. Kurulumu tamamlamak için, ilk kilitlenme raporunuzu Firebase'e göndermek amacıyla bir test istisnasının atılmasını zorunlu kılmanız gerekir.
Başlamadan önce
Henüz yapmadıysanız Flutter projenizde Firebase'i yapılandırın ve başlatın.
Önerilen: Kilitlenme, önemli olmayan veya ANR etkinliğiyle sonuçlanan kullanıcı işlemlerini anlamak için içerik haritası günlüklerini otomatik olarak almak için Firebase projenizde Google Analytics'i etkinleştirmeniz gerekir.
Mevcut Firebase projenizde Google Analytics etkin değilse Firebase konsolunda
'nın > Proje ayarlarıEntegrasyonlar sekmesinden Google Analytics'i etkinleştirebilirsiniz. Yeni bir Firebase projesi oluşturuyorsanız proje oluşturma iş akışı sırasında Google Analytics'i etkinleştirin.
İçerik haritası 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'i ekleyin
Flutter projenizin kök dizininden aşağıdaki komutu çalıştırarak Crashlytics için Flutter eklentisini yükleyin.
İçerik haritası 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ı ve Android için gerekli Crashlytics Gradle eklentisini uygulamanıza ekler.
Ardından Flutter projenizi yeniden derleyin:
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 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 projenizin ö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ı (v.11.9.0+) kullanın. Karartılmış bir 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 uygulaması kimliğiniz (paket adınız değil)
Örnek Firebase Android uygulaması kimliği:1:567383003300:android:17104a2ced0c9b9b
PATH/TO/symbols
: Uygulamayı oluştururken--split-debug-info
işaretine ilettiğiniz dizindir.
2. Adım: Kilitlenme işleyicileri yapılandırın
FlutterError.onError
öğesini FirebaseCrashlytics.instance.recordFlutterFatalError
ile geçersiz kılarak Flutter çerçevesinde bildirilen 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 eşzamansız hataları yakalamak için PlatformDispatcher.instance.onError
komutunu 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 işleneceğine dair örnekler için Kilitlenme raporlarını özelleştirme bölümüne bakın.
3. Adım: Kurulumu tamamlamak için test kilitlenmesini zorunlu kılın
Crashlytics'in kurulumunu tamamlamak ve Firebase konsolunun Crashlytics kontrol panelinde ilk verileri görmek için bir test istisnasının atılmasını zorunlu kılmanız gerekir.
Uygulamanıza, bir test istisnasının atlatılmasını zorunlu kılmak için kullanabileceğiniz bir kod ekleyin.
Üst düzey
Zone
öğesineFirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
çağrısı yapan 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 atılmasını zorlayın:
Test cihazınızdan veya emülatörünüzden uygulamanızı açın.
Uygulamanızda, yukarıdaki kodu kullanarak eklediğiniz istisnai test et düğmesine basın.
Test kilitlenmenizi görmek için Firebase konsolunun Crashlytics kontrol paneline gidin.
Konsolu yenilediyseniz ve beş dakika geçmesine rağmen test kilitlenmesini 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ük kaydını etkinleştirin.
Hepsi bu kadar! Crashlytics artık kilitlenmelere ve Android'de önemli olmayan hatalar ile ANR'lere karşı uygulamanızı izliyor. Tüm raporlarınızı ve istatistiklerinizi görüntüleyip incelemek için Crashlytics kontrol panelini ziyaret edin.
Sonraki adımlar
Etkinleştirme raporları, günlükler, anahtarlar ve önemli olmayan ek hataların izlenmesini ekleyerek kilitlenme raporu ayarlarınızı özelleştirin.
Google Play ile entegre edin. Böylece Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play kanalına göre filtreleyebilirsiniz. Bu sayede kontrol panelinizi belirli derlemelere daha iyi odaklanabilirsiniz.
Android Studio'daki Uygulama Kalitesi Analizleri penceresiyle yığın izlemeleri ve kilitlenme istatistiklerini kodunuzla birlikte görüntüleyin (Elektrik Eel 2022.1.1'den itibaren kullanılabilir).