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.
Track all outbound HTTP calls and inbound payloads made via packages like Dio or Http. View latency, status codes, payloads, and response errors directly inside the reporting console.
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. By registering our custom interceptor helper, you can capture full request/response headers, status codes, and payloads to isolate API latency or failure issues.
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.