From 8f7a2e6a9ce08d248fa6d0c66008f8bf54b76caf Mon Sep 17 00:00:00 2001 From: Ryan Albrecht Date: Mon, 25 Aug 2025 13:40:17 -0700 Subject: [PATCH 1/3] docs(replay): Bring replay nav item to all apple platforms --- .../session-replay/customredact.mdx | 6 ++- .../ios => common}/session-replay/index.mdx | 42 +++++++++---------- .../session-replay/performance-overhead.mdx | 6 ++- .../session-replay/troubleshooting.mdx | 24 ++++++++++- 4 files changed, 53 insertions(+), 25 deletions(-) rename docs/platforms/apple/{guides/ios => common}/session-replay/customredact.mdx (98%) rename docs/platforms/apple/{guides/ios => common}/session-replay/index.mdx (87%) rename docs/platforms/apple/{guides/ios => common}/session-replay/performance-overhead.mdx (98%) rename docs/platforms/apple/{guides/ios => common}/session-replay/troubleshooting.mdx (67%) diff --git a/docs/platforms/apple/guides/ios/session-replay/customredact.mdx b/docs/platforms/apple/common/session-replay/customredact.mdx similarity index 98% rename from docs/platforms/apple/guides/ios/session-replay/customredact.mdx rename to docs/platforms/apple/common/session-replay/customredact.mdx index a363a5e0f8677..3cb659e8c76df 100644 --- a/docs/platforms/apple/guides/ios/session-replay/customredact.mdx +++ b/docs/platforms/apple/common/session-replay/customredact.mdx @@ -1,8 +1,12 @@ --- 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 --- diff --git a/docs/platforms/apple/guides/ios/session-replay/index.mdx b/docs/platforms/apple/common/session-replay/index.mdx similarity index 87% rename from docs/platforms/apple/guides/ios/session-replay/index.mdx rename to docs/platforms/apple/common/session-replay/index.mdx index 2f90e4f3f4f98..ba64815d27ca0 100644 --- a/docs/platforms/apple/guides/ios/session-replay/index.mdx +++ b/docs/platforms/apple/common/session-replay/index.mdx @@ -2,10 +2,28 @@ 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: --- + + +## FAQ + +Q: **Does Session Replay work with SwiftUI?** + +A: Yes. It works with both UIKit and SwiftUI. + +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. + +# Session Replay for Mobile Apps + + + + + 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. @@ -105,24 +123,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. + diff --git a/docs/platforms/apple/guides/ios/session-replay/performance-overhead.mdx b/docs/platforms/apple/common/session-replay/performance-overhead.mdx similarity index 98% rename from docs/platforms/apple/guides/ios/session-replay/performance-overhead.mdx rename to docs/platforms/apple/common/session-replay/performance-overhead.mdx index 9ad8bde8ad8e4..3c9da05b03c67 100644 --- a/docs/platforms/apple/guides/ios/session-replay/performance-overhead.mdx +++ b/docs/platforms/apple/common/session-replay/performance-overhead.mdx @@ -1,8 +1,12 @@ --- 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 --- 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. diff --git a/docs/platforms/apple/guides/ios/session-replay/troubleshooting.mdx b/docs/platforms/apple/common/session-replay/troubleshooting.mdx similarity index 67% rename from docs/platforms/apple/guides/ios/session-replay/troubleshooting.mdx rename to docs/platforms/apple/common/session-replay/troubleshooting.mdx index 488d097a5a25e..53ce5d6bd376b 100644 --- a/docs/platforms/apple/guides/ios/session-replay/troubleshooting.mdx +++ b/docs/platforms/apple/common/session-replay/troubleshooting.mdx @@ -1,10 +1,32 @@ --- 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 --- + + +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). + + + + + +Session Replay recording happens even on the lowest version supported by the Sentry SDK, which is aligend with appstore support. + + + + + +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. + + + If you have a custom window setup (e.g., multiple instances of `UIWindow`), you need to ensure that the Sentry SDK is able to find the correct window. From 5961dde95bc74b741e7b250ddb7bb13511d70694 Mon Sep 17 00:00:00 2001 From: Ryan Albrecht Date: Mon, 25 Aug 2025 14:03:44 -0700 Subject: [PATCH 2/3] add link to iOS specific page --- docs/platforms/apple/common/session-replay/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/apple/common/session-replay/index.mdx b/docs/platforms/apple/common/session-replay/index.mdx index ba64815d27ca0..10fea98d5636f 100644 --- a/docs/platforms/apple/common/session-replay/index.mdx +++ b/docs/platforms/apple/common/session-replay/index.mdx @@ -16,7 +16,7 @@ A: Yes. It works with both UIKit and SwiftUI. 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. +A: 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. # Session Replay for Mobile Apps From dc091783f0bd11f3572c178e2920bdab7e411362 Mon Sep 17 00:00:00 2001 From: Ryan Albrecht Date: Tue, 26 Aug 2025 15:12:01 -0700 Subject: [PATCH 3/3] iterate! added an Alert on top of all pages inside Apple > Session Replay, no content visible Apple > iOS > Session Replay pages are unchanged Apple > macOS > Session Replay pages are mostly empty, only show the alert --- .../common/session-replay/customredact.mdx | 9 +++++++ .../apple/common/session-replay/index.mdx | 14 ++--------- .../session-replay/performance-overhead.mdx | 10 ++++++++ .../common/session-replay/troubleshooting.mdx | 24 ++++++++++++++++++- .../apple-session-replay-support-alert.mdx | 5 ++++ 5 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 includes/apple-session-replay-support-alert.mdx diff --git a/docs/platforms/apple/common/session-replay/customredact.mdx b/docs/platforms/apple/common/session-replay/customredact.mdx index 3cb659e8c76df..7f2a527667340 100644 --- a/docs/platforms/apple/common/session-replay/customredact.mdx +++ b/docs/platforms/apple/common/session-replay/customredact.mdx @@ -9,6 +9,13 @@ notSupported: - apple.visionos --- + + + + + + + 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. @@ -116,3 +123,5 @@ struct ContentView_Previews: PreviewProvider { } } ``` + + \ No newline at end of file diff --git a/docs/platforms/apple/common/session-replay/index.mdx b/docs/platforms/apple/common/session-replay/index.mdx index 10fea98d5636f..60246212b65f1 100644 --- a/docs/platforms/apple/common/session-replay/index.mdx +++ b/docs/platforms/apple/common/session-replay/index.mdx @@ -8,21 +8,11 @@ notSupported: -## FAQ - -Q: **Does Session Replay work with SwiftUI?** - -A: Yes. It works with both UIKit and SwiftUI. - -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](/platforms/apple/guides/ios/session-replay/). As a consequence, we can't make guarantees about its functionality and performance on other platforms. - -# Session Replay for Mobile Apps + - + diff --git a/docs/platforms/apple/common/session-replay/performance-overhead.mdx b/docs/platforms/apple/common/session-replay/performance-overhead.mdx index 3c9da05b03c67..169d8d1f275a5 100644 --- a/docs/platforms/apple/common/session-replay/performance-overhead.mdx +++ b/docs/platforms/apple/common/session-replay/performance-overhead.mdx @@ -9,6 +9,14 @@ notSupported: - 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. @@ -82,3 +90,5 @@ SentrySDK.start(configureOptions: { options in The old view renderer will be deprecated and removed in a future release. + + \ No newline at end of file diff --git a/docs/platforms/apple/common/session-replay/troubleshooting.mdx b/docs/platforms/apple/common/session-replay/troubleshooting.mdx index 53ce5d6bd376b..d69700efa64c0 100644 --- a/docs/platforms/apple/common/session-replay/troubleshooting.mdx +++ b/docs/platforms/apple/common/session-replay/troubleshooting.mdx @@ -9,6 +9,26 @@ notSupported: - apple.visionos --- + + + + + + + + + + +Session Replay works with both UIKit and SwiftUI. + + + + + +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. + + + 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). @@ -92,4 +112,6 @@ final class SceneDelegate: NSObject, UIWindowSceneDelegate { } ``` - \ No newline at end of file + + + \ No newline at end of file diff --git a/includes/apple-session-replay-support-alert.mdx b/includes/apple-session-replay-support-alert.mdx new file mode 100644 index 0000000000000..d1825c391a3de --- /dev/null +++ b/includes/apple-session-replay-support-alert.mdx @@ -0,0 +1,5 @@ + + +Session Replay is currently officially supported on iOS and works with both UIKit and SwiftUI. Go to the iOS specific docs. + + \ No newline at end of file