diff --git a/analysis_options.yaml b/analysis_options.yaml index fb80863..a3be6b8 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,3 +1 @@ -include: package:flutter_lints/flutter.yaml -analyzer: - exclude: [lib/main_prod.dart] \ No newline at end of file +include: package:flutter_lints/flutter.yaml \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index 5f24621..57d4449 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -29,6 +29,7 @@ if (keystorePropertiesFile.exists()) { apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' +apply plugin: 'com.google.firebase.crashlytics' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" diff --git a/android/build.gradle b/android/build.gradle index bb34f99..e0630bc 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,6 +8,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.1.2' classpath 'com.google.gms:google-services:4.3.10' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/lib/firebase.dart b/lib/firebase.dart new file mode 100644 index 0000000..ca2407a --- /dev/null +++ b/lib/firebase.dart @@ -0,0 +1,14 @@ +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_crashlytics/firebase_crashlytics.dart'; +import 'package:flutter/foundation.dart'; + +import 'firebase_options.dart'; + +Future initializeFirebase() async { + await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); + FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError; + PlatformDispatcher.instance.onError = (error, stack) { + FirebaseCrashlytics.instance.recordError(error, stack, fatal: true); + return true; + }; +} diff --git a/lib/main_prod.dart b/lib/main_prod.dart index cb6e570..627f016 100644 --- a/lib/main_prod.dart +++ b/lib/main_prod.dart @@ -2,8 +2,11 @@ import 'package:flutter/material.dart'; import 'package:lightmeter/environment.dart'; import 'application.dart'; +import 'firebase.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); + await initializeFirebase(); + runApp(const Application(Environment.prod())); } diff --git a/pubspec.yaml b/pubspec.yaml index a9ac6eb..f76c67c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,6 +11,8 @@ dependencies: camera: 0.10.0+4 exif: 3.1.2 dynamic_color: 1.5.4 + firebase_core: 2.7.0 + firebase_crashlytics: 3.1.2 flutter: sdk: flutter flutter_bloc: 8.1.1