fullstory_flutter 0.71.0
fullstory_flutter: ^0.71.0 copied to clipboard
Visual capture support for Fullstory session replay
fullstory_flutter #
fullstory_flutter provides Fullstory autocapture capabilities to support
session replay by integrating with the existing Fullstory Native Mobile SDKs.
This plug-in is intended to be used in conjunction with Fullstory for Mobile Apps.
⚠️ This plugin is currently in Early Access. Some breaking changes are possible before the 1.0.0 release. You may encounter bugs in visual session replay during the Early Access.
Quick Links #
- Email us
fullstory_flutterdocumentation
Setting up Flutter session replay #
-
Update to Flutter 3.32 or higher.
-
Follow the directions to set up the public
fullstory_flutterplugin and ensure it is working as expected. -
Update Android and iOS SDKs to a minimum version of 1.68.0.
-
In the app's
main.dart(or wherever the app is started) replacerunApp($YourAppHere$)withrunFullstoryApp($YourAppHere$)and addimport 'package:fullstory_flutter/fullstory_flutter.dart';. If you userunWidget,runFullstoryWidgetshould be used instead. -
Run the app again and ensure that a session is successfully captured.
Optional additional setup #
If you wish to enable additional data capture, such as pages, crashes, and network requests, please follow the steps in our developer documentation.
Custom classes and attributes #
Use FSCustomAttributes to add custom classes or attributes to your widgets.
Wrap the widget you want to annotate with FSCustomAttributes and add any
classes or attributes you wish to include.
Obfuscation support #
If you use --obfuscate to obfuscate your release app, follow these steps
to see unobfuscated selectors in selectors in replay. This is necessary
for Privacy Rules and other Fullstory features to work.
Note: These steps bundle debfuscation mapping for public class names into app binaries.
- Before building, set an environment variable so Fullstory iOS can find the
mapping file using
export FS_FLUTTER_OBFUSCATION_MAP=/path/to/file.json - When building set
--extra-gen-snapshot-options=--save-obfuscation-map=/path/to/file.jsonas an additional flag.
Disable obfuscation support #
To disable obfuscation support, use the following build-time configuration:
Android: Pass -P flutterSelectorDeobfuscationEnabled=false
iOS: Do not set FS_FLUTTER_OBFUSCATION_MAP
Note: This will typically result in fully masked playback.
Example usage #
FSCustomAttributes {
classes: ['class1', 'class2'],
attributes: {'field1': 'value1'},
child: YourAnnotatedWidget(),
}
Known Issues #
- Not compatible with tools and frameworks like Patrol, which also use custom bindings. Please contact us to determine a way to combine our binding with your framework’s.
- Apps which have multiple FlutterViews on screen at the same time aren’t supported yet. Please contact us if you use multiple FlutterViews.
- You may see performance degradation, especially in heavy scrolling or during
transitions. Upcoming versions will include performance improvements.
--releaseor--profilebuilds should perform much better.