diff --git a/android/app/build.gradle b/android/app/build.gradle index f7409263..763665e4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -29,6 +29,7 @@ if (keystorePropertiesFile.exists()) { apply plugin: 'com.android.application' // START: FlutterFire Configuration apply plugin: 'com.google.gms.google-services' +apply plugin: 'com.google.firebase.crashlytics' // END: FlutterFire Configuration apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" diff --git a/android/build.gradle b/android/build.gradle index c613c3d5..b4fec929 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -9,6 +9,7 @@ buildscript { classpath 'com.android.tools.build:gradle:7.3.0' // START: FlutterFire Configuration classpath 'com.google.gms:google-services:4.3.10' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1' // END: FlutterFire Configuration classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } diff --git a/lib/main_dev.dart b/lib/main_dev.dart index 8dcdbd01..b795ca4c 100644 --- a/lib/main_dev.dart +++ b/lib/main_dev.dart @@ -1,8 +1,13 @@ +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:flutter/widgets.dart'; import 'package:hiddify/bootstrap.dart'; import 'package:hiddify/domain/environment.dart'; void main() async { final widgetsBinding = WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp(); + FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError; + return lazyBootstrap(widgetsBinding, Environment.dev); } diff --git a/lib/main_prod.dart b/lib/main_prod.dart index 81b713ca..1f7c2673 100644 --- a/lib/main_prod.dart +++ b/lib/main_prod.dart @@ -1,8 +1,12 @@ +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:flutter/widgets.dart'; import 'package:hiddify/bootstrap.dart'; import 'package:hiddify/domain/environment.dart'; void main() async { final widgetsBinding = WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp(); + FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError; return lazyBootstrap(widgetsBinding, Environment.prod); } diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 36233a18..8e108f0b 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,8 @@ import FlutterMacOS import Foundation +import firebase_core +import firebase_crashlytics import flutter_local_notifications import mobile_scanner import package_info_plus @@ -19,6 +21,8 @@ import url_launcher_macos import window_manager func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) + FLTFirebaseCrashlyticsPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCrashlyticsPlugin")) FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin")) FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) diff --git a/pubspec.lock b/pubspec.lock index b3239d3b..dc6eaff8 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -9,6 +9,14 @@ packages: url: "https://pub.dev" source: hosted version: "60.0.0" + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + sha256: "1a5e13736d59235ce0139621b4bbe29bc89839e202409081bc667eb3cd20674c" + url: "https://pub.dev" + source: hosted + version: "1.3.5" accessibility_tools: dependency: "direct main" description: @@ -369,6 +377,46 @@ packages: url: "https://pub.dev" source: hosted version: "6.1.4" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + sha256: c78132175edda4bc532a71e01a32964e4b4fcf53de7853a422d96dac3725f389 + url: "https://pub.dev" + source: hosted + version: "2.15.1" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: b63e3be6c96ef5c33bdec1aab23c91eb00696f6452f0519401d640938c94cba2 + url: "https://pub.dev" + source: hosted + version: "4.8.0" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: "4cf4d2161530332ddc3c562f19823fb897ff37a9a774090d28df99f47370e973" + url: "https://pub.dev" + source: hosted + version: "2.7.0" + firebase_crashlytics: + dependency: "direct main" + description: + name: firebase_crashlytics + sha256: fd9e1a1cb7cce3f9dd2358d8363d235f25f056981e23a333db1e57eca693913f + url: "https://pub.dev" + source: hosted + version: "3.3.5" + firebase_crashlytics_platform_interface: + dependency: transitive + description: + name: firebase_crashlytics_platform_interface + sha256: "0d19ef23cf7a917a357d2eb1807338ec536ec3232e729ebd769f5bb2aba9e085" + url: "https://pub.dev" + source: hosted + version: "3.6.5" fixnum: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index f4f97da3..9c175a6e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -78,6 +78,8 @@ dependencies: sliver_tools: ^0.2.12 flutter_adaptive_scaffold: ^0.1.7+1 humanizer: ^2.2.0 + firebase_crashlytics: ^3.3.5 + firebase_core: ^2.15.1 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 27559c5b..f1ddd719 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,7 @@ #include "generated_plugin_registrant.h" +#include #include #include #include @@ -16,6 +17,8 @@ #include void RegisterPlugins(flutter::PluginRegistry* registry) { + FirebaseCorePluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); ProtocolHandlerPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("ProtocolHandlerPlugin")); ScreenRetrieverPluginRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 3242dc61..3e5c6592 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + firebase_core protocol_handler screen_retriever share_plus