Understand and replay iOS app crashes with Session Replay

The latest enhancement to mobile crash monitoring with Dynatrace Session Replay provides you with a movie-like replay experience of the final user actions of all user sessions that terminate in crashes, along with mechanisms for protecting the privacy of your customers.

Mobile apps provide enterprises with a great opportunity to differentiate themselves from their competition, generate more business, and build their brands. However, applications won’t improve sales or increase customer loyalty if they crash frequently. Indeed, app crashes are reported to be one of the biggest pain points when it comes to mobile user experience.

To help you provide a seamless, best-in-class experience to your users, we’re announcing a feature enhancement to mobile crash monitoring with Dynatrace Session Replay. This feature:

  • Helps developers reproduce crashes faster
  • Helps application owners and non-technical users understand the impact of these crashes, thereby improving communication across teams

Quickly understand the root cause and impact of mobile crashes

Starting with Dynatrace version 1.208, Session Replay for mobile ensures that you have a movie-like replay experience of the final user actions of all user sessions that terminate in crashes, while also providing you with mechanisms to protect the privacy of your customers.

This new feature is perfectly integrated into the Dynatrace workflow. For example, if there’s an increase in the number of crashes in your app, Dynatrace will automatically create a problem that indicates the degree of severity and the affected users. You can then access all the required details to understand and reproduce the issue, all the way from the user interaction down to the exact line of code that was executed on the back end.

Let’s take a detailed look at a few use cases and examples to better understand the value of this enhancement.

Understand the root cause of a crash by reproducing it with Session Replay

As an app developer analyzing a crash detected by Dynatrace, you can see the sequence of steps that were performed by the user along with the crash stack trace:

With this information in hand, you can immediately see in which method the error occurred. While this is helpful, you still need answers to questions such as:

  • Why isn’t this error occurring in other sessions?
  • What makes this session different from other sessions that follow the same path?
  • Is this issue the result of a specific input from the user?
  • Did this issue result from the order in which the user added the data or the speed with which they selected the UI controls?
  • How can I reproduce this issue in my local environment to come up with a solution?

The easiest way to get answers to all these questions is to play back the crashed session using Dynatrace Session Replay. So even when you don’t fully understand the exact cause of a crash, you can still view a video of the end of the crashed session to see the exact steps that the affected user took and the exact data they entered.

In the video example below, mobile Session Replay reveals that an issue arose when non-ASCII characters were introduced: París instead of Paris. In less than two minutes, you’re already on your way to resolving such a problem!

Enable non-technical teams to make informed decisions that drive revenue growth

Consider the following example: A user session on your travel website crashes while a customer is booking a journey. However, this issue hasn’t occurred with other user sessions. By looking at the stack trace, your development team understands that there’s a missing IBAction. Because this is only required under certain conditions, the team quickly realizes that, in this case, unauthenticated users were trying to book a journey and couldn’t. Because booking journeys is a primary conversion goal for online travel businesses, this bug could have a huge revenue impact for this business.
While the development team can start solving the issue immediately, they still need to communicate the issue to other non-technical teams so that everyone can understand the importance and criticality of the issue. 

Session Replay plays a key role in such situations. For instance, by playing back and watching the following session, you can easily identify that there’s a bug in the Book Journey step of the user session. With Dynatrace Session Replay, even non-technical teams can look at crash reports in Dynatrace and prioritize them based on the number of occurrences, versions, and impact to end users and the business.

Easily analyze crashes when symbol files are missing

If an application developer forgets to upload a symbols file to Dynatrace, the stack trace won’t be human readable. In such cases, the crash can be analyzed only by using the information that’s available on the session details page. With the assistance of the replay video to show you all the user interactions, resolving such issues without symbol files is now much easier.

Data protection by default

As with all Dynatrace features, Session Replay for crashes in iOS was designed with data privacy in mind. There are two ways to protect user data:

  • Masking functionality, which ensures that data isn’t captured
  • Permissions, which ensure that only users with assigned permissions can play back recorded sessions

Masking

The masking process takes place on the device, even before screenshots are saved to local storage to guarantee that confidential information is never revealed.

The masking API we provide allows you to fine-tune the masking configuration to your needs. There are two predefined sets of rules:

  • Safest: This is the default option; it masks everything.
  • Safe: This option only masks input fields and images

We also provide you with the option of defining a custom rule set, using either a block-list or an allow-list approach.

We’ve added the string data-dtrum-mask such that when it’s added as an accessibility identifier to a view, it ensures that the view is masked. This accessibility identifier always takes precedence over masking rules.

Permissions

Newly introduced user permissions apply to recorded mobile user sessions, so you can decide which users in your organization can play back mobile sessions.

How to enable Session Replay for mobile

Starting with Dynatrace version 1.208, Session Replay for crashes is enabled by default in Dynatrace UI, nevertheless the instrumentation in the monitored application needs to be done, instructions on how to do it are stated in the Instrumentation wizard.

In the General mobile app setting tab, the Enable Session Replay option ensures that sessions with crashes are recorded.

To modify these settings

  1. From the navigation menu, select Applications.
  2. Select the mobile app you want to configure.
  3. On the mobile app overview page, select Browse () > Edit.
  4. Select the Instrumentation settings tab.

In Instrumentation settings, enabling Include session replay on crashes ensures that the Session Replay SDK is included in the Podfile that needs to be integrated into your application. If the Session Replay SDK isn’t integrated with the application, the Enable session replay setting won’t take effect.

To modify these settings

  1. From the navigation menu, select Applications.
  2. Select the mobile app you want to configure.
  3. On the mobile app overview page, select Browse () > Edit.
  4. Select the Instrumentation settings tab.

What’s next

Support for iOS marks only the beginning of Session Replay for mobile app crash analysis. Of course, we’re working to support Session replay for Android app crash analysis too, so stay tuned for updates!

Stay updated