flutter_bugfender

A Bugfender Wrapper plugin (implementing native code) for Flutter Projects.

Note: This plugin was provided by the community, hence it is published "AS IS", our support might not always be able to help you.

Using the package

Edit pubspec.yaml and add add flutter_bugfender to dependencies:

dependencies:
  flutter:
    sdk: flutter
  flutter_bugfender: ^5.0.0

Then run flutter pub get (or ‘Packages Get’ in IntelliJ) to download the package.

Edit lib/main.dart and add an import:

import 'package:flutter_bugfender/flutter_bugfender.dart';

And wrap your runApp statement like this:

void main() {
  FlutterBugfender.handleUncaughtErrors(() async {
    await FlutterBugfender.init("YOUR_APP_KEY",
        enableCrashReporting: true, // these are optional, but recommended
        enableUIEventLogging: true,
        enableAndroidLogcatLogging: true);
    FlutterBugfender.log("hello world!");

    // Optional: capture network requests (disabled by default)
    await FlutterBugfender.setNetworkLoggingEnabled(true);
    await FlutterBugfender.setNetworkLoggingRequestObfuscationHandler(
      (url, headers, body) {
        final safeHeaders = Map<String, String>.from(headers);
        if (safeHeaders.containsKey('Authorization')) {
          safeHeaders['Authorization'] = '***';
        }
        return NetworkRequestData(url: url, headers: safeHeaders, body: body);
      },
    );

    runApp(new MyApp());
  });
}

Network logging notes:

  • Web: intercepts fetch and XMLHttpRequest.
  • iOS: captures URLSession traffic.
  • Android: enable via the API above; OkHttp/Ktor apps also need the Bugfender interceptor/plugin (android-okhttp / android-ktor). See the Android docs.
  • Use setNetworkLoggingRequestObfuscationHandler / setNetworkLoggingResponseObfuscationHandler to redact sensitive headers or bodies before they are logged.

Documentation

For information on how to use our SDK, you can check the documentation to configure your project.