Configuration
Launching with options
Make sure you launch your app with Bugsee on a real device. Bugsee iOS SDK does not work in simulator as it heavily depends on the hardware.
Bugsee behavior is very customizable, if default configuration is not satisfying your needs you can launch the SDK with additional parameters passed as a dictionary.
!Objective-C
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ...other initialization code
NSDictionary * options = @{
BugseeMaxRecordingTimeKey : @60,
BugseeShakeToReportKey : BugseeFalse,
BugseeScreenshotToReportKey : BugseeTrue,
BugseeCrashReportKey : BugseeTrue
};
[Bugsee launchWithToken:@"<your_app_token>" andOptions:options];
return YES;
}
!Swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// ...other initialization code
let options : [String: Any] =
[ BugseeMaxRecordingTimeKey : 60,
BugseeShakeToReportKey : false,
BugseeScreenshotToReportKey : true,
BugseeCrashReportKey : true ]
Bugsee.launch(token: "<your_app_token>", options: options)
return true
}
Stopping
Stopping will fully stop the SDK operation and clean up all the used resources. The operation may take a while to complete.
!Objective-C
[Bugsee stop:^(void) {
// operations to perform upon completion
}];
!Swift
Bugsee.stop {
// operations to perform upon completion
}
Relaunching
Relaunching will fully stop the SDK operation and clean up all the used resources. Upon completion it will start recording again with new options.
!Objective-C
[Bugsee relaunchWithDictionaryOptions:options];
!Swift
Bugsee.relaunch(options: options)
Available Options
Key | Default value | Notes |
---|---|---|
BugseeMaxRecordingTimeKey | @60 | Maximum recording duration |
BugseeShakeToReportKey | NO | Shake gesture to trigger report. Be aware, that enabling this option may cause a startup delay/freeze on iOS 12 due to the bug in the CoreMotion system framework (read more) |
BugseeScreenshotToReportKey | YES | Screenshot key to trigger report |
BugseeCrashReportKey | YES | Catch and report application crashes (*) |
BugseeKillDetectionKey | NO | Detect abnormal termination (read more) |
BugseeDetectAppExitKey | NO | 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 |
BugseeVideoEnabledKey | YES | Enable video recording |
BugseeScreenshotEnabledKey | YES | Attach screenshot to a report. Note, that if BugseeVideoEnabledKey option is NO, default value of this option is NO too. |
BugseeViewHierarchyEnabledKey | YES | Capture view hierarchy for Bug and Error reports |
BugseeCaptureLogsKey | YES | Automatically capture all console logs |
BugseeCaptureOSLogsKey | NO | Automatically capture OSLog and Logger print statements. IMPORTANT: Experimental feature |
BugseeMonitorNetworkKey | YES | Capture network traffic |
BugseeMonitorBluetoothStatusKey | NO | 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 |
BugseeMonitorDiskSpaceKey | NO | |
BugseeReportPrioritySelectorKey | NO | Allow user to modify priority when reporting manual |
BugseeReportLabelsEnabledKey | NO | Display labels field in the built-in bug reporting UI |
BugseeReportLabelsRequiredKey | NO | Controls whether "Labels" field in bug reporting UI is mandatory or not. |
BugseeDefaultCrashPriorityKey | BugseeSeverityBlocker | Default priority for crashes |
BugseeDefaultBugPriorityKey | BugseeSeverityLow | Default priority for bugs |
BugseeWifiOnlyUploadKey | NO | Upload reports only when a device is connected to a Wi-Fi network. |
BugseeMaxDataSizeKey | @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. |
BugseeStyleKey | Default | Enumeration of BugseeStyleSystemDefault, BugseeStyleDefault, BugseeStyleDark and BugseeStyleBasedOnStatusBarStyle |
BugseeFrameRateKey | BugseeFrameRateHigh | Specifies how often frames are attempted to be captured |
BugseeVideoScaleKey | @1 | Additional down scaling applied to recorded video, (e.x @0.5 would reduce both width and height by half) |
CaptureDeviceAndNetworkNames** | NO | Capture device name, wifi SSID and mobile carrier name. |
ReportSummaryRequiredKey | NO | Controls whether "Summary" field in bug reporting UI is mandatory or not. |
ReportDescriptionRequiredKey | NO | Controls whether "Description" field in bug reporting UI is mandatory or not. |
ReportEmailRequiredKey | NO | Controls whether "Email" field in bug reporting UI is mandatory or not. |
BugseeAppLaunchCrashDetectionKey | NO | Controls whether early crashes are intercepted and uploaded. Early crashes are those happening within first 5 seconds after app launch. And they are uploaded synchronously (with blocking main thread) to guarantee upload |
BugseeCaptureAVPlayerKey | NO | When enabled, video playing via AVPlayerLayer and via AVPlayerViewController will be captured on video |
Built-in reporting UI adjustments
Alongside stylistic changes, you can also change the placeholders' texts shown in input controls within the built-in bug reporting UI
!Objective-C
[[Bugsee appearance] setReportSummaryPlaceholder:@"What's happened? Only briefly"];
[[Bugsee appearance] setReportDescriptionPlaceholder:@"Here, describe all the pains and frustrations you had. In details"];
[[Bugsee appearance] setReportEmailPlaceholder:@"Identify yourself here"];
[[Bugsee appearance] setReportLabelsPlaceholder:@"Labels.For.Developers. [Comma separated]"];
!Swift
Bugsee.appearance().reportSummaryPlaceholder = "What's happened? Only briefly"
Bugsee.appearance().reportDescriptionPlaceholder = "Here, describe all the pains and frustrations you had. In details"
Bugsee.appearance().reportEmailPlaceholder = "Identify yourself here"
Bugsee.appearance().reportLabelsPlaceholder = "Labels.For.Developers. [Comma separated]"
* iOS allows only one crash detector to be active at a time, if you insist on using an alternative solution for handling crashes, you might want to use this option and disable Bugsee from taking over.
** To obtain WiFi information, the requesting app must meet one of the following requirements (for full details please refer to Apple documentation):
- The app uses Core Location, and has the user’s authorization to use location information.
- The app uses the NEHotspotConfiguration API to configure the current Wi-Fi network.
- The app has active VPN configurations installed.
- The app has an active
NEDNSSettingsManager
configuration installed.
- Privacy - Location Always and When In Use Usage Description
- Privacy - Location When In Use Usage Description