The bugs ("Report a problem" from the Prompt Options menu) and feedback ("Suggest an improvement" from Prompt Options) that your users submit from your app are sent to the bugs page of your dashboard in the form of bug reports.
With each report, you receive a plethora of details that will help you fix bugs and get more context about the comments you receive. Throughout this page, you will learn about all the information that comes in these reports, as well as any relevant APIs that you can use to customize the data that you receive, including:
Default attributes as well as any custom user attributes that you set are automatically sent to your dashboard with all reports.
Default attributes listed in each report include:
- App version
- OS version
- App view
- Device location
- Session duration
More details about how to set custom user attributes can be found here.
The image below shows the first view that your users see when reporting a bug after invoking the SDK.
The first step of the bug reporting flow that your app users experience.
By default, your users are required to enter a valid email address to submit a bug or feedback. To allow users to submit bugs and feedback without an email, use the following method.
BugReporting.invocationOptions = [.emailFieldOptional | .commentFieldRequired]
IBGBugReporting.invocationOptions = IBGBugReportingInvocationOptionEmailFieldOptional | IBGBugReportingInvocationOptionCommentFieldRequired;
You can also remove the email field from the UI completely using the following API.
BugReporting.invocationOptions = [.emailFieldHidden]
IBGBugReporting.invocationOptions = IBGBugReportingInvocationOptionEmailFieldHidden;
By default, your app users can submit bugs and feedback without entering a description. To require users to leave a comment before they are able to send bugs or feedback, use the following method.
BugReporting.invocationOptions = [.commentFieldRequired]
IBGBugReporting.invocationOptions = IBGBugReportingInvocationOptionCommentFieldRequired;
Your users can submit two types of attachments with any report: default Instabug attachments (files that they can select from their device) and custom extra attachments (additional files that you can attach using code).
When your app users invoke Instabug, the SDK automatically captures a screenshot of their current view. This is the default attachment that is sent with any report. Your users can annotate this screenshot by drawing on, magnifying, or blurring specific parts.
In addition, there are other attachment types that your users can choose to send with each report. All attachment types can be enabled or disabled.
The attachment options are:
- Extra screenshots
- Images from photo library
- Screen recording
This is where your users' attachments appear in each report from the bugs page of your dashboard.
All attachment options are enabled by default if they are available in your current plan.
You can customize the attachment options that are available for your users to send by passing its corresponding enum value as an argument in the following API call.
BugReporting.enabledAttachmentTypes = [.screenShot, .screenRecording]
IBGBugReporting.enabledAttachmentTypes = IBGAttachmentTypeScreenShot | IBGAttachmentTypeScreenRecording;
Here are the possible enum values.
extraScreenShot galleryImage screenRecording screenShot
IBGAttachmentTypeScreenshot; IBGAttachmentTypeExtraScreenshot; IBGAttachmentTypeGalleryImage; IBGAttachmentTypeScreenRecording;
This is where the extra attachments appear in each report from the bugs page of your dashboard.
Use the following method to add a new file attachment.
let url = fileURL() Instabug.addFileAttachment(with: url)
NSURL *url = self.fileURL; [Instabug addFileAttachmentWithURL:url];
A new copy of the file at
fileURL will be attached with each bug and feedback submitted. Extra files are only copied when reports are sent, so you can safely call this API whenever files are available on disk, and the copies attached to your reports will always contain the latest changes at the time of sending.
If more than three files are attached, the API overrides the first file. The file also has to be available locally at the provided path when the report is being sent.
To clear the list of files to be attached, use the method below. This method doesn't delete any files from the local file system. It just removes them from the list of attachments for each report.
A whole host of logs are sent with every report. These logs include:
- Console Logs: Default logs that are printed to the console when the application is running.
- Instabug Logs: Logs with different verbosity levels that you can add manually.
- User Steps: Every step the user has taken in the form of log entries.
- Repro Steps: Visual user steps prior to the crash occurrence in the form of images and GIFs.
- Network Logs: A log of each network request.
- User Events: A manual log of actions that a user has taken.
An example of the expanded logs view in your dashboard.
Repro Steps help you reproduce a bug by displaying your users' actions in each view of your app. With each view, you will find a list of actions that tell you exactly what the user did in that view. More details can be found here.
This is enabled by default depending on your plan.
With each report, you'll receive a detailed environment profile covering the last 60 seconds before a bug or feedback was submitted. This Session Profiler includes device data like memory load and battery state. This is enabled by default depending on your plan. More details about the information contained in the Session Profiler can be found here.
This is where the Session Profiler is located in each report from the bugs page of your dashboard.
You can add tags to the reports you receive to help you filter and triage bugs in your dashboard. More details regarding tags can be found here.
This is where report tags are located in each report from the bugs page of your dashboard.
Spot patterns, identify trends, and explore data in your bug reports with our useful analytics. Check it out below!