Configuration
Launching with options
Bugsee behavior is very customizable, if default configuration is not satisfying your needs you can launch the SDK with additional parameters. Use instance of IOSLaunchOptions
or AndroidLaunchOptions
for corresponding platform to change Bugsee behavior.
!iOS
using System.Collections.Generic;
namespace YourNameSpace
{
[Register("AppDelegate")]
public class AppDelegate : MauiUIApplicationDelegate
{
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
var bugseeOptions = new BugseePlugin.IOSLaunchOptions();
bugseeOptions.ShakeToReport = true;
bugseeOptions.ReportPrioritySelector = true;
bugseeOptions.DefaultBugPriority = BugseeSeverityLevel.Critical;
BugseePlugin.Bugsee.Launch("<your_app_token>", bugseeOptions);
return base.FinishedLaunching(application, launchOptions);
}
}
}
!Android
using System.Collections.Generic;
namespace YourNameSpace
{
[Application]
public class MainApplication : MauiApplication
{
public MainApplication(IntPtr handle, JniHandleOwnership ownership)
: base(handle, ownership)
{
}
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
public override void OnCreate()
{
base.OnCreate();
var bugseeOptions = new BugseePlugin.AndroidLaunchOptions();
bugseeOptions.ShakeToTrigger = true;
bugseeOptions.NotificationBarTrigger = false;
BugseePlugin.Bugsee.Launch(this, "<your token>", bugseeOptions);
}
}
}
Available Options
For iOS
Key | Default | Notes |
---|---|---|
CaptureDeviceAndNetworkNames | true | Capture device name, wifi SSID and mobile carrier name. |
CaptureLogs | true | Automatically capture all console logs |
CaptureAVPlayer | false | When enabled, video playing via AVPlayerLayer and via AVPlayerViewController will be captured on video. This also may include video streams from camera. |
CaptureOSLogs | false | Controls whether OSLog messages are captured. Disabled by default. Note that OSLog capturing incurs a performance slight penalty, thus, please measure the impact for your specific use case |
CrashReport | true | Catch and report application crashes (*) |
DefaultBugPriority | VeryLow | Default priority for bugs |
DefaultCrashPriority | Blocker | Default priority for crashes |
DetectAppExit | false | Detect any kind of process termination (e.g. when user swipes off the application from multitasking UI, or when system unloads the app due memory pressure). Special error report is generated for this scenario with "BugseeAppExit" domain |
FrameRate | High | Specifies how often frames are captured |
KillDetection | false | Detect abnormal termination (experimental, read more) |
MaxDataSize | 50 | Bugsee will avoid using more disk space than specified (in MB). If total Bugsee data size exceeds specified value, oldest recordings (even not sent) will be removed. Value should not be smaller than 10 |
MaxNetworkBodySize | 5120 | The limit above which network requests bodies will not be captured. Specified in bytes. |
MaxRecordingTime | 60 | Maximum recording duration |
MonitorNetwork | true | Capture network traffic |
MonitorBluetoothStatus | false | Monitor bluetooth state. IMPORTANT: You must add "Privacy - Bluetooth Always Usage Description" key into your Info.plist with a string value explaining to the user why you need bluetooth permission |
MonitorDiskSpace | false | |
ReportDescriptionRequired | false | Controls whether "Description" field in bug reporting UI is mandatory or not. |
ReportEmailRequired | false | Controls whether "Email" field in bug reporting UI is mandatory or not |
ReportPrioritySelector | false | Allow user to modify priority when reporting manual |
ReportSummaryRequired | false | Controls whether "Summary" field in bug reporting UI is mandatory or not |
ScreenshotEnabled | true | Attach screenshot to a report |
ScreenshotToReport | true | Screenshot key to trigger report |
ShakeToReport | false | Shake gesture to trigger report |
Style | Default | Enumeration of Default, Dark and BasedOnStatusBar |
VideoEnabled | true | Enable video recording |
ViewHierarchyEnabled | true | Capture view hierarchy for bug and error reports |
WifiOnlyUpload | false | Upload reports only when a device is connected to a WiFi network |
For Android
Key | Default | Notes |
---|---|---|
CaptureDeviceAndNetworkNames | true | Capture device name, wifi SSID and mobile carrier name. |
CaptureLogs | true | Automatically capture all console logs |
CrashReport | true | Catch and report application crashes |
DefaultBugPriority | VeryLow | Default priority for bugs |
DefaultCrashPriority | Blocker | Default priority for crashes |
DetectAppExit | false | Detect any kind of process termination (e.g. when user swipes off the application from multitasking UI, or when system unloads the app due memory pressure). Special error report is generated for this scenario with "BugseeAppExit" domain |
FrameRate | BugseeFrameRate.High | Specifies how often frames are captured |
ExtendedVideoMode | false | Enables or disables the use of MediaProjection API (**) |
LogLevel | Verbose | Minimal log level of Logcat messages, which will be attached to report |
MaxDataSize | 50 | Maximum disk space consumed by Bugsee |
MaxNetworkBodySize | 5120 | The limit above which network requests bodies will not be captured. Specified in bytes. |
MaxRecordingTime | 60 | Maximum recording duration |
MonitorNetwork | true | Capture network traffic |
ReportDescriptionRequired | false | Controls whether "Description" field in bug reporting UI is mandatory or not. |
ReportEmailRequired | false | Controls whether "Email" field in bug reporting UI is mandatory or not |
ReportPrioritySelector | false | Allow user to modify priority when reporting manual |
ReportSummaryRequired | false | Controls whether "Summary" field in bug reporting UI is mandatory or not |
NotificationBarTrigger | true | Trigger report from notification bar |
ScreenshotEnabled | true | Attach screenshot to a report |
ServiceMode | false | Used, when Bugsee is launched from service. No video and no visual controls available. Recording continues even in background. |
ShakeToReport | false | Shake gesture to trigger report |
VideoEnabled | true | Enable video recording |
ViewHierarchyEnabled | true | Capture view hierarchy for bug and error reports |
WifiOnlyUpload | false | Upload reports only when a device is connected to a WiFi network |
Stop, Relaunch
It is also possible to relaunch Bugsee with other options later
!iOS
// Relaunch with other options.
var options = new BugseePlugin.IOSLaunchOptions();
// Set other launch options
//...
BugseePlugin.Bugsee.Relaunch(options);
!Android
// Relaunch with other options.
var options = new BugseePlugin.AndroidLaunchOptions();
// Set other launch options
//...
BugseePlugin.Bugsee.Relaunch(options);
or stop the events and video recording.
// Stop recording completely
BugseePlugin.Bugsee.Stop()
Handling UnobservedTaskExceptions
Starting with version 4.5 of .NET Framework, exceptions thrown within the Tasks are not causing app to crash any more. Instead, they are rerouted to UnobservedTaskExceptions event handlers. By default, we do not capture them to reduce noise. If, however, you need them to be captured, enable that feature by setting the following option (same for all the platforms):
BugseePlugin.Bugsee.HandleTaskExceptions = true;
NOTE: This option is enabled by default.