Skip to content

Unofficial native bindings to the Bugsnag SDK

License

Notifications You must be signed in to change notification settings

happy-co/bugsnag_flutter

 
 

Repository files navigation

Use the Official Bugsnag Flutter SDK

This repo has been deprecated in favor of the official Bugsnag Flutter SDK (same package name). Please see the announcement or skip ahead to the new, official repo.

Bugsnag Flutter

Unofficial native bindings to the Bugsnag SDK. Android is still experimental.

Setup

void main() async {
  await Bugsnag.instance.configure(iosApiKey: 'YOUR_API_KEY', androidApiKey: 'YOUR_API_KEY', releaseStage: 'production');

  // Capture Flutter errors automatically:
  FlutterError.onError = Bugsnag.instance.recordFlutterError;

  runZonedGuarded(() {
    runApp(MyApp());
  }, (error, stackTrace) {
    Bugsnag.instance.recordError(error, stackTrace);
  });
}

⚠️ Because error reporting occurs in Flutter and not in the native code where Bugsnag expects to report the error from, the stack trace is recreated using Flutter's reports. The parsing can occaisionally drop full file paths, so a complete output of the errors thrown are reported to a custom "Flutter" tab on the Bugsnag report.

Breadcrumbs

To better debug a crash, breadcrumbs can be transmitted to Bugsnag. Some are captured by default, but Flutter interactions are not. To track screens, use the built-in observer:

import 'package:bugsnag_flutter/bugsnag_observer.dart';

MaterialApp(
  // ...your material config...
  home: HomeScreen(),
  navigatorObservers: [
    BugsnagObserver(),
  ],
);

Or log specific events:

FlatButton(
  onTap: () {
    Bugsnag.instance.leaveBreadcrumb('Button Tapped', type: BugsnagBreadcrumb.user);
  }
);

About

Unofficial native bindings to the Bugsnag SDK

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Dart 67.9%
  • Kotlin 15.0%
  • Objective-C 11.4%
  • Ruby 3.3%
  • Java 2.4%