Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
---
title: Using Custom Masking for Session Replay
sidebar_order: 5501
notSupported:
description: "Learn how to mask parts of your app's data in Session Replay."
notSupported:
- apple.macos
- apple.watchos
- apple.tvos
- apple.visionos
---

<PlatformSection notSupported={["apple.ios"]}>

<Include name="apple-session-replay-support-alert" />

</PlatformSection>

<PlatformSection notSupported={["apple", "apple.macos", "apple.tvos", "apple.watchos", "apple.visionos"]}>
<Alert>

Before enabling Session Replay in production, verify your masking configuration to ensure no sensitive data is captured. Our default settings aggressively mask potentially sensitive data, but if you modify these settings or update UI frameworks or system SDKs, you must thoroughly test your application. If you find any masking issues or sensitive data that should be masked but isn't, please [create a GitHub issue](https://github.com/getsentry/sentry-cocoa/issues/new/choose) and avoid deploying to production with Session Replay enabled until the issue is resolved.
Expand Down Expand Up @@ -112,3 +123,5 @@ struct ContentView_Previews: PreviewProvider {
}
}
```

</PlatformSection>
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,18 @@
title: Set Up Session Replay
sidebar_title: Session Replay
sidebar_order: 5500
notSupported:
description: "Learn how to enable Session Replay in your mobile app."
notSupported:
---

<PlatformSection notSupported={["apple.ios"]}>

<Include name="apple-session-replay-support-alert" />

</PlatformSection>

<PlatformSection notSupported={["apple", "apple.macos", "apple.tvos", "apple.watchos", "apple.visionos"]}>

<Alert level="warning">

Before enabling Session Replay in production, verify your masking configuration to ensure no sensitive data is captured. Our default settings aggressively mask potentially sensitive data, but if you modify these settings or update UI frameworks or system SDKs, you must thoroughly test your application. If you find any masking issues or sensitive data that should be masked but isn't, please [create a GitHub issue](https://github.com/getsentry/sentry-cocoa/issues/new/choose) and avoid deploying to production with Session Replay enabled until the issue is resolved.
Expand Down Expand Up @@ -105,24 +113,4 @@ Errors that happen while a replay is running will be linked to the replay, makin
- The replay was deleted by a member of your org.
- There were network errors and the replay wasn't saved.

## FAQ

Q: **Does Session Replay work with SwiftUI?**

A: Yes. It works with both UIKit and SwiftUI.

Q: **Why are parts of my replay not masked?**

A: Text views, input views, images, video players and webviews are all masked by default. Images with bundled assets aren't masked because the likelihood of these assets containing PII is low. If you encounter a view that should be masked by default, consider opening a [GitHub issue](https://github.com/getsentry/sentry-cocoa/issues).

Q: **What's the lowest version of iOS supported?**

A: Session Replay recording happens even on the lowest version supported by the Sentry SDK, which is aligend with appstore support.

Q: **Why is my issue missing a replay?**

A: An issue may be missing a replay because the user's device was [offline](/product/explore/session-replay/mobile#frequently-asked-questions) while `sessionSampleRate` was specified, your project/organization was rate-limited, or (in rare cases) the device failed to capture the replay video.

Q: **Does Session Replay work on macOS, watchOS, tvOS and visionOS?**

A: We don't actively prevent you from using Session Replay on these platforms, but we only officially support it on iOS. As a consequence, we can't make guarantees about its functionality and performance on other platforms.
</PlatformSection>
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
---
title: Performance Overhead
sidebar_order: 5502
notSupported:
description: "Learn about how enabling Session Replay impacts the performance of your application."
notSupported:
- apple.macos
- apple.watchos
- apple.tvos
- apple.visionos
---

<PlatformSection notSupported={["apple.ios"]}>

<Include name="apple-session-replay-support-alert" />

</PlatformSection>

<PlatformSection notSupported={["apple", "apple.macos", "apple.tvos", "apple.watchos", "apple.visionos"]}>

If you're considering enabling Session Replay, it's important to first understand the potential performance impact to your app. While accurate metrics require realistic testing where you apply typical access patterns and correlate the results with your business metrics, to provide a baseline, we measured the overhead using the open-source [Pocket Casts](https://github.com/Automattic/pocket-casts-ios) app.

You can learn more about the various performance overhead optimizations implemented in the iOS Replay SDK in the [Replay Performance Overhead](/product/explore/session-replay/mobile/performance-overhead/) docs.
Expand Down Expand Up @@ -78,3 +90,5 @@ SentrySDK.start(configureOptions: { options in
The old view renderer will be deprecated and removed in a future release.

</Alert>

</PlatformSection>
Original file line number Diff line number Diff line change
@@ -1,10 +1,52 @@
---
title: Troubleshooting
sidebar_order: 5503
notSupported:
description: "Troubleshoot and resolve common issues with the iOS Session Replay."
notSupported:
- apple.macos
- apple.watchos
- apple.tvos
- apple.visionos
---

<PlatformSection notSupported={["apple.ios"]}>

<Include name="apple-session-replay-support-alert" />

</PlatformSection>

<PlatformSection notSupported={["apple", "apple.macos", "apple.tvos", "apple.watchos", "apple.visionos"]}>

<Expandable title="Does Session Replay work with UIKit, SwiftUI or AppKit?" permalink>

Session Replay works with both UIKit and SwiftUI.

</Expandable>

<Expandable title="Does Session Replay work on macOS, watchOS, tvOS and visionOS?" permalink>

We don't actively prevent you from using Session Replay on these platforms, but we only officially [support it on iOS](/platforms/apple/guides/ios/session-replay/). As a consequence, we can't make guarantees about its functionality and performance on other platforms.

</Expandable>

<Expandable title="Why are parts of my replay not masked?" permalink>

Text views, input views, images, video players and webviews are all masked by default. Images with bundled assets aren't masked because the likelihood of these assets containing PII is low. If you encounter a view that should be masked by default, consider opening a [GitHub issue](https://github.com/getsentry/sentry-cocoa/issues).

</Expandable>

<Expandable title="What's the lowest version of iOS supported?" permalink>

Session Replay recording happens even on the lowest version supported by the Sentry SDK, which is aligend with appstore support.

</Expandable>

<Expandable title="Why is my issue missing a replay?" permalink>

An issue may be missing a replay because the user's device was [offline](/product/explore/session-replay/mobile#frequently-asked-questions) while `sessionSampleRate` was specified, your project/organization was rate-limited, or (in rare cases) the device failed to capture the replay video.

</Expandable>

<Expandable title="AVFoundation views and layers are not rendered" permalink>

Session Replay currently cannot capture content from AVFoundation views and layers. This includes:
Expand Down Expand Up @@ -87,3 +129,5 @@ final class SceneDelegate: NSObject, UIWindowSceneDelegate {
```

</Expandable>

</PlatformSection>
5 changes: 5 additions & 0 deletions includes/apple-session-replay-support-alert.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<Alert level="info">

Session Replay is currently officially supported on iOS and works with both UIKit and SwiftUI. Go to the <a href="/platforms/apple/guides/ios/session-replay/">iOS specific docs</a>.

</Alert>