简体   繁体   English

How can we add Firebase Crashlytics in flutter where the flutter app is itself added to existing iOS and Android app?

[英]How can we add Firebase Crashlytics in flutter where the flutter app is itself added to existing iOS and Android app?

I want to add a flutter app into my existing native app, which I am able to do succesfully using flutter docs .我想将 flutter 应用程序添加到我现有的本机应用程序中,我可以使用 flutter docs成功完成。 After this, I want to log crashes and other data using firebase for the flutter screens.在此之后,我想为 flutter 屏幕使用 firebase 记录崩溃和其他数据。 Since normal implementation of Flutter Fire requires changes to be made in the android and iOS folders, but these folders do not exist in flutter project.由于 Flutter Fire 的正常实施需要在 android 和 iOS 文件夹中进行更改,但这些文件夹在 Z5ACEBC4CACB70DDBB0AEZ4B0AC76 项目中不存在So any ideas on how to do it?那么关于如何做到这一点的任何想法?

I had the same issue.我遇到过同样的问题。

I solved by this way:我通过这种方式解决了:

  1. Don't put changes in ios and android folder.不要在 ios 和 android 文件夹中进行更改。
  2. Use callback to send your crash information by the native side.使用回调在本机端发送您的崩溃信息。
  3. Configure FarebaseCrashlytics only in native app.仅在本机应用程序中配置 FarebaseCrashlytics。

For example:例如:

Native side in Swift: Swift 中的本机端:

let methodChannel = FlutterMethodChannel(name: "FLUTTER_CHANNEL", binaryMessenger: flutterEngine.binaryMessenger)
                methodChannel.setMethodCallHandler { (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in
                    if call.method == "HANDLE_ERROR" {
                        let userInfo: [String: String] = [
                            "deviceId": UIDevice.current.identifierForVendor!.uuidString
                        ]
                        var errorData = "";
                        if let args = call.arguments as? Dictionary<String, Any> {
                            errorData = args["data"] as? String ?? ""
                        }

                        let error = NSError(domain: errorData, code: 0, userInfo: userInfo)

                        Crashlytics.crashlytics().record(error: error)
                    }
                }

Flutter side: Flutter侧:

   Future<void> _handleErrorNative([String errorData]) async {
    try {
      final methodChannel = MethodChannel("FLUTTER_CHANNEL");
      await methodChannel.invokeMethod(
        'HANDLE_ERROR',
        {
          "data": errorData,
        },
      );
    } on PlatformException catch (_) {
      print("_handleErrorNative PlatformException");
    }
  }

Remember, the crash only will send after reopen the app.请记住,崩溃只会在重新打开应用程序后发送。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何让 Android 和 iOS 的 Flutter App 崩溃(测试 Firebase Crashlytics)? - How to crash Flutter App for Android and iOS (to test Firebase Crashlytics)? 如何将 Firebase Crashlytics 添加到 Flutter 应用程序? - How to add Firebase Crashlytics to flutter app? Firebase Crashlytics 安装错误 Flutter - IOS 应用程序 - Error on Firebase Crashlytics installation for Flutter - IOS app 将应用程序链接到Firebase Crashlytics时的依赖性问题 - maven / android / flutter - Dependency issue when linking app to Firebase Crashlytics - maven/android/flutter 如何使用 Firebase Crashlytics 对 Flutter 应用程序中的 Java 堆栈跟踪进行反混淆 - How to deobfuscate Java stacktrace in Flutter app with Firebase Crashlytics 我们如何解决 flutter 应用程序中的 firebase 函数内部异常? - How can we resolve firebase functions INTERNAL exception in a flutter app? 如何将Android应用程序添加到iOS应用程序中已在使用的现有Firebase项目中? - How can I add an Android App to an existing Firebase Project that is already in use in an iOS App? 如何将 Firebase-Crashlytics 添加到 Flutter 项目? - How to add Firebase-Crashlytics to Flutter project? 无法在 IOS 上使用 firebase 运行 flutter 应用程序 - Can't run flutter app with firebase on IOS Flutter:Flutter Firebase Crashlytics 未在 iOS 上显示 - Flutter: Flutter Firebase Crashlytics not showing for iOS
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM