Repro Steps

Learn more about the steps your user has taken until the bug or crash was reported.

Repro Steps show you all of the interactions a user makes with your app up until a bug or crash is reported, grouped by the app view. For each view that a user visits, all of the steps that they commit are captured and displayed as logs next to the relevant screenshot. Repro steps can be found below the bug details.

2888

Logged Data

Captured Events

UI Interactions

For the following gestures, only the gesture is logged and displayed:

  • Swipe
  • Scroll
  • Pinch
  • Tap
  • Double tap
  • Enabling/disabling a switch
  • Changing the value of a slider
  • Editing a text field.

Lifecycle Events

Whenever one of the following lifecycle events occurs, it will be captured and shown on the timeline:

  • Application is moved to the background
  • Application is moved to the foreground
  • Application becomes active
  • Application becomes inactive

Extra Details

Depending on the event, you'll find further details displayed as part of the log statement.

  • Tap and double tap: the SDK always tries to first capture the text rendered inside the UI that the user is interacting with, then we fall back to capturing the icon only with the buttons and navigation items, then, we fall back to the accessibility labels.
  • Switch: both the accessibility label as well as whether the user enabled or disabled the switch are logged.
  • Slider: both the accessibility label as well as the value that the user moves the slider to it are captured.
  • Text fields: first, the SDK tries to capture the placeholder, then we fall back to the accessibility label.

Examples

Here are some examples of how steps look like:

  • Tapped on the button "Send"
  • Double tapped on UI that contains "Instructions"
  • Started editing “Password“
  • Enabled the switch “Push Notifications“
  • Moved the slider “Text Size“ to 10%
  • App went to the background
  • App became active
2888

User Privacy

Disclaimer

A disclaimer will be shown at the bottom of the report. It helps your users view all the screenshots taken for the Repro Steps before sending a report and can delete them as well.

2184

Private Views

On your side, you can easily mark any view that might contain sensitive info like payment details as private. Any private view will automatically appear with a black overlay covering it in any screenshot.

📘

Effect of Private Views

When adding a view to the list of private views, here are the list of things it will affect:

  • Views will be blacked out in screenshots
  • Views will be blacked out in repro steps
  • Views will be blacked out in the View Hierarchy. Text views will be replaced with ****
  • Videos will not be blacked out due to limitations regarding media projection

Adding Private Views

To make a view private, you use the following method:

//Should be added in the activity with the view, takes any number of views
Instabug.addPrivateViews(view1, view2, view3);
//Should be added in the activity with the view, takes any number of views
Instabug.addPrivateViews(view1, view2, view3)

Removing Private Views

If you'd like to remove a view from the list of private views, use the following method:

//Should be added in the activity with the view, takes any number of views
Instabug.removePrivateViews(view1, view2, view3);
//Should be added in the activity with the view, takes any number of views
Instabug.removePrivateViews(view1, view2, view3)

Disabling and Enabling

This feature is enabled by default with screenshots if it's included in your plan. You can control it through the setReproStepsState Instabug builder method.

//Method 1
new Instabug.Builder(this, “APP_TOKEN”)
	.setInvocationEvents(InstabugInvocationEvent.SHAKE)
  .setReproStepsState(State.ENABLED)
	.build(); 

//Method 2
Instabug.setReproStepsState(State.ENABLED);
//Method 1
Instabug.Builder(this, “APP_TOKEN”)
	.setInvocationEvents(InstabugInvocationEvent.SHAKE)
  .setReproStepsState(State.ENABLED)
	.build(); 

//Method 2
Instabug.setReproStepsState(State.ENABLED)

Here are the possible arguments.

State.ENABLED_WITH_NO_SCREENSHOTS
State.ENABLED
State.DISABLED

📘

Screenshots are always disabled with Crash Reporting.

For Crash Reporting, the screenshots are always disabled as the data is silently collected without any interaction from the user. This decision is part of our ongoing commitment to end-users' privacy.