Bu hızlı başlangıç, Firebase konsolunda kapsamlı kilitlenme raporları alabilmeniz için uygulamanızda Firebase Crashlytics'i Crashlytics Flutter eklentisiyle nasıl kuracağınızı açıklar.
Crashlytics'in kurulumu hem komut satırı aracının hem de IDE'nizin kullanılmasını içerir. Kurulumu tamamlamak için, ilk kilitlenme raporunuzu Firebase'e göndermek amacıyla bir test istisnasının atılmasını zorlamanız gerekir.
Sen başlamadan önce
Henüz yapmadıysanız Flutter projenizde Firebase'i yapılandırın ve başlatın .
Önerilen : Kilitlenme sorunu yaşamayan kullanıcılar, içerik haritası günlükleri ve hız uyarıları gibi özelliklerden yararlanmak için Firebase projenizde Google Analytics'i etkinleştirmeniz gerekir.
Crashlytics tarafından desteklenen tüm Android ve Apple platformları (watchOS hariç) Google Analytics'in bu özelliklerinden yararlanabilir.
Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun: Şuraya gidin:
Adım 1 : Flutter projenize Crashlytics'i ekleyin
Crashlytics Flutter eklentisini yüklemek için Flutter projenizin kökünden aşağıdaki komutu çalıştırın:
flutter pub add firebase_crashlytics
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.
Tamamlandığında Flutter projenizi yeniden oluşturun:
flutter run
(İsteğe bağlı) Flutter projeniz
--split-debug-info
bayrağını (ve isteğe bağlı olarak--obfuscate
bayrağını) kullanıyorsa, uygulamalarınız için okunabilir yığın izlerini göstermek için ek adımlar gerekir.Apple platformları: Projenizin otomatik olarak Flutter sembolleri (dSYM dosyaları) 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'yi (v.11.9.0+) kullanın. Gizlenmiş bir kod yapısından 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)
Örnek Firebase Android Uygulama Kimliği:1:567383003300:android:17104a2ced0c9b9b
Firebase Uygulama Kimliğinizi bulmanın iki yolu:
google-services.json
dosyanızdaki Uygulama Kimliğinizmobilesdk_app_id
değeridir; veyaFirebase konsolunda Proje ayarlarınıza gidin. Uygulamalarınız kartına doğru aşağı kaydırın ve ardından Uygulama Kimliğini bulmak için istediğiniz Firebase Uygulamasını tıklayın.
PATH/TO /symbols
: Uygulamayı oluştururken--split-debug-info
bayrağına ilettiğiniz dizinle aynı
2. Adım : Kilitlenme işleyicilerini yapılandırın
FlutterError.onError
dosyasını FirebaseCrashlytics.instance.recordFlutterFatalError
ile geçersiz kılarak Flutter çerçevesinde 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 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 ilişkin örnekler için bkz. Kilitlenme raporlarını özelleştirme .
3. Adım : Kurulumu tamamlamak için test kilitlenmesini zorunlu kılın
Crashlytics kurulumunu 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, bir test istisnasının atılmasını zorlamak için kullanabileceğiniz kodu ekleyin.
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
üst düzeyZone
çağıran bir hata işleyicisi eklediyseniz, uygulamanıza basıldığında bir düğme eklemek için aşağıdaki kodu kullanabilirsiniz: bir test istisnası:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Uygulamanızı oluşturun ve çalıştırın.
Uygulamanızın ilk raporunu göndermek için test istisnasının atılması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 yenilediyseniz ve beş dakika sonra hâlâ test kilitlenmesini göremiyorsanız uygulamanızın kilitlenme raporları gönderip göndermediğini görmek için hata ayıklama günlüğünü etkinleştirin .
Ve bu kadar! Crashlytics artık uygulamanızı çökmelere ve Android'de önemli olmayan hatalara ve ANR'lere karşı izliyor. Tüm raporlarınızı ve istatistiklerinizi görüntülemek ve araştırmak için Crashlytics kontrol panelini ziyaret edin.
Sonraki adımlar
İsteğe bağlı raporlama, günlükler, anahtarlar ve önemli olmayan ek hataların takibini ekleyerek kilitlenme raporu kurulumunuzu özelleştirin .
Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play parçasına göre filtreleyebilmek için Google Play ile entegrasyon yapın . Bu, kontrol panelinizi belirli yapılara daha iyi odaklamanıza olanak tanır.
Android Studio'daki Uygulama Kalitesi Analizleri penceresini kullanarak kodunuzun yanı sıra yığın izlerini ve kilitlenme istatistiklerini görüntüleyin (Electric Eel 2022.1.1'den itibaren kullanılabilir).