Repro Steps

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

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.

Disabling and Enabling Repro steps

Repro Steps is by default enabled with screenshots for both bug reporting and session replay and enabled without screenshots for crash reporting.

You can change the value of the Issue Type.

You can change the value of the User Steps Mode.

Examples

API
Meaning

Swift: Luciq.setReproStepsFor(.all, with: .enable) ObjC:[Lucuq setReproStepsFor:LCQIssueTypeAll withMode:LCQUserStepsModeEnable];

Enable with Screenshots for both Bug Reporting and Crash Reporting.

Swift: Luciq.setReproStepsFor(.crash, with: .enabledWithNoScreenshots) ObjC: [Luciq setReproStepsFor:LCQIssueTypeAllCrashes withMode:LCQUserStepsModeEnabledWithNoScreenshots];

Enable with No Screenshots for Crash Reporting.

Swift: Luciq.setReproStepsFor(.bug, with: .enable) ObjC: [Luciq setReproStepsFor:LCQIssueTypeBug withMode:LCQUserStepsModeEnable];

Enable with Screenshots for Bug Reporting.

Swift: Luciq.setReproStepsFor(.all, with: .disable) ObjC: [Luciq setReproStepsFor:LCQIssueTypeAll withMode:LCQUserStepsModeDisable];

Completely disable for both Bug Reporting and Crash Reporting.

To be able to capture Repro Steps, we need to do method swizzling. We take an approach to swizzling that is absolutely safe and does not impact your app negatively in any way.

Screenshots are by default disabled for Crash Reporting.

For Crash Reporting, screenshots are by default disabled; however, if you are looking to enable screenshots in Crash Reporting, make sure to use the Auto Masking API. This API will automatically help you mask sensitive data in screenshots to protect the end-users' privacy.

Redacting View Content in User Steps and Repro Steps

Starting from SDK version 19.7.0, you can use Luciq.viewsContentCaptureEnabled as a master privacy flag that controls whether User Steps and Repro Steps capture view content (titles, labels, text). When disabled, captured events still fire with the gesture, view class, and screen name. User Steps omit captured view labels, while Repro Steps replace view text and labels with non-identifying descriptors such as "a button", "a text", or "an image".

By default, viewsContentCaptureEnabled is true. Set it to false to redact view content from User Steps and Repro Steps.

Scope and behavior

  • Affects only User Steps and Repro Steps view content: User Steps labels are omitted, and Repro Steps labels use non-identifying descriptors. It does not affect Session Replay screenshots, bug-report screenshots, or crash-report screenshots — use the auto-masking APIs for those.

  • Stored in memory for the current process and does not survive app restarts.

  • Can be set before Luciq.start(withToken:invocationEvents:) so the value is applied as soon as automatic capture starts.

  • Applies to events captured after the call. Previously-recorded steps are not retroactively redacted.

Last updated