We use cookies to ensure you get the best user experience on our website.Find Out More
Shakebug is a Flutter crash reporting SDK that catches native-level exceptions on Android and iOS as well as unhandled Dart errors and async exceptions in Zones, mapping every stack trace back to your actual Dart files. Crashes are grouped automatically by Crash AI, so a rename or a shifted line number between releases doesn't split one crash into several issues.
While Flutter makes cross-platform UI development fast, debugging platform-specific issues or asynchronous Dart exceptions can be frustrating. Shakebug is a visual SDK that bridges the gap between testers and developers, delivering deep logs and stack traces in 1-click.
Add the package from pub.dev
flutter pub add shakebug
Wrap your app with ShakebugSDK in main.dart
import 'package:shakebug/shakebug.dart';
ShakebugSDK(
androidAppKey: 'your_android_appkey',
iosAppKey: 'your_ios_appkey',
child: MaterialApp(
home: const HomeScreen(),
),
);
Shake-to-report is enabled by default — no extra setup once ShakebugSDK wraps your app.
Go beyond general crash reports. Get Dart exception mapping and HTTP interceptors out-of-the-box.
Shakebug wraps your application block to catch uncaught Dart errors, asynchronous exceptions in zones, and framework-level rendering issues, mapping stack traces back to your actual Dart files.
Users and testers can highlight UI bugs with drawing arrows, pen markings, and sensitive visual detail blurring directly on the screenshot before submitting.
Shakebug records navigation steps, screen transitions, gestures, and button inputs so developers can trace the exact user journey up to the crash event.
A caught Dart exception or native crash doesn't sit as a raw stack trace. Shakebug's Crash AI clusters duplicate crashes into a single issue with a first-seen date, affected devices, and OS versions, the same way it does for iOS, Android, React Native, and web. See how Crash AI grouping works →
Yes, we actively maintain the SDK package to support the latest Flutter releases, Dart versions, and platform-specific updates for both iOS and Android.
Yes. Shakebug tracks chronological user navigation, screen views, and tap interactions leading up to any bug report or crash.
Yes. Shakebug captures both native-level exceptions (NDK/JVM on Android, Swift/Obj-C on iOS) and unhandled asynchronous Dart exceptions in your application.
Shakebug hooks into the Flutter Zone specification to capture stdout, stderr, and debugPrint outputs, presenting them in a clean chronological log timeline.
In Flutter, a crash can be a native Android or iOS exception, or it can be an unhandled Dart error inside a Zone that never reaches native code. Shakebug catches both and maps the stack trace back to the actual Dart source, then groups duplicates with Crash AI.