Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
2942089
fix(session-replay): Ignore list background decoration view in redaction
philprime Sep 26, 2025
648f62d
Merge remote-tracking branch 'origin/main' into philprime/fix-masking
philprime Sep 29, 2025
26dccd1
add comments
philprime Sep 29, 2025
ea7ecaa
WIP
philprime Sep 30, 2025
edfe055
WIP
philprime Oct 2, 2025
3b84342
WIP
philprime Oct 3, 2025
b7e28ef
WIP
philprime Oct 3, 2025
0fc7b14
Merge remote-tracking branch 'origin/main' into philprime/fix-masking
philprime Oct 6, 2025
2adac27
WIP
philprime Oct 6, 2025
5777824
WIP
philprime Oct 6, 2025
fa8a6ed
add snapshot tests
philprime Oct 6, 2025
53cff29
Merge remote-tracking branch 'origin/main' into philprime/fix-masking
philprime Oct 7, 2025
e180ae3
update tests in common
philprime Oct 8, 2025
1595fb0
fix uiswitch masking
philprime Oct 8, 2025
d627f40
cleanup
philprime Oct 8, 2025
8bb64c2
add more assertions to SwiftUI redaction tests
philprime Oct 8, 2025
98c4cb8
Merge remote-tracking branch 'origin/main' into philprime/fix-masking
philprime Oct 8, 2025
f0d3b4d
remove legacy screenshot snapshots
philprime Oct 8, 2025
5d5eddb
fix linting issues
philprime Oct 8, 2025
1176dad
revert mask renderer scale 2
philprime Oct 8, 2025
c2cc920
regenerate snapshots at 1x
philprime Oct 8, 2025
7c1cd59
add snapshots for SwiftUI masking tests
philprime Oct 9, 2025
3ae9bd4
Merge remote-tracking branch 'origin/main' into philprime/fix-masking
philprime Oct 14, 2025
1ccb38a
WIP
philprime Oct 14, 2025
d0aa648
wip
philprime Oct 14, 2025
4e67405
WIP
philprime Oct 14, 2025
8e6ea50
fixes
philprime Oct 15, 2025
00a82e8
remove unstable SwiftUI tests
philprime Oct 15, 2025
4188bfc
remove reference to removed file
philprime Oct 15, 2025
3757102
Merge remote-tracking branch 'origin/main' into philprime/fix-masking
philprime Oct 15, 2025
6f1a29d
remove SwiftUI snapshots
philprime Oct 15, 2025
e2e93a8
fix snapshots
philprime Oct 20, 2025
2c93cb9
update changelog
philprime Oct 20, 2025
f2e0398
fix compilation for macOS
philprime Oct 20, 2025
05f3e6a
change snapshots to run for iOS 18.4
philprime Oct 20, 2025
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
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,15 @@
- Fix rendering method for fast view rendering (#6360)
- Fix issue where the thread that generated an event could be missing when more than 100 threads are running (#6377)
- Fix wrong Frame Delay when becoming active, which lead to false reported app hangs when the app moves to the foreground after being in the background (#6381)
- Session Replay masking improvements (#6292)
- Fix SwiftUI.List background decoration view causing incorrect clipping of screen content
- Fix sublayer rendering order by properly sorting by zPosition with insertion order as tie-breaker
- Fix UISwitch internal images being incorrectly redacted
- Fix UITextField placeholder text (UITextFieldLabel) not being detected for redaction
- Use string-based class comparison to avoid triggering Objective-C +initialize on background threads
- Add layer class filtering for views used in multiple contexts (e.g., SwiftUI._UIGraphicsView)
- Improve transform calculations for views with custom anchor points
- Fix axis-aligned transform detection for optimized opaque view clipping

### Improvements

Expand Down
59 changes: 55 additions & 4 deletions Sentry.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -784,6 +784,7 @@
D43B26D62D70964C007747FD /* SentrySpanOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D43B26D52D709648007747FD /* SentrySpanOperation.m */; };
D43B26D82D70A550007747FD /* SentryTraceOrigin.m in Sources */ = {isa = PBXBuildFile; fileRef = D43B26D72D70A54A007747FD /* SentryTraceOrigin.m */; };
D43B26DA2D70A612007747FD /* SentrySpanDataKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D43B26D92D70A60E007747FD /* SentrySpanDataKey.m */; };
D43C1BE82E8FB85400CD5D67 /* SnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = D43C1BE72E8FB85400CD5D67 /* SnapshotTesting */; };
D4411DD52E02B74900EA4987 /* ArrayAccessesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4411DD42E02B74100EA4987 /* ArrayAccessesTests.swift */; };
D44B16722DE464AD006DBDB3 /* TestDispatchFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D44B16712DE464A9006DBDB3 /* TestDispatchFactoryTests.swift */; };
D451ED5D2D92ECD200C9BEA8 /* SentryOnDemandReplayError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D451ED5C2D92ECD200C9BEA8 /* SentryOnDemandReplayError.swift */; };
Expand Down Expand Up @@ -830,6 +831,11 @@
D4AF00212D2E92FD00F5F3D7 /* SentryNSFileManagerSwizzling.m in Sources */ = {isa = PBXBuildFile; fileRef = D4AF00202D2E92FD00F5F3D7 /* SentryNSFileManagerSwizzling.m */; };
D4AF00232D2E931000F5F3D7 /* SentryNSFileManagerSwizzling.h in Headers */ = {isa = PBXBuildFile; fileRef = D4AF00222D2E931000F5F3D7 /* SentryNSFileManagerSwizzling.h */; };
D4AF00252D2E93C400F5F3D7 /* SentryNSFileManagerSwizzlingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D4AF00242D2E93C400F5F3D7 /* SentryNSFileManagerSwizzlingTests.m */; };
D4AF7D222E93FFCA004F0F59 /* SentryUIRedactBuilderTests+ReactNative.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4AF7D212E93FFCA004F0F59 /* SentryUIRedactBuilderTests+ReactNative.swift */; };
D4AF7D262E9401EB004F0F59 /* SentryUIRedactBuilderTests+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4AF7D252E9401EB004F0F59 /* SentryUIRedactBuilderTests+UIKit.swift */; };
D4AF7D282E9402AC004F0F59 /* SentryUIRedactBuilderTests+SpecialViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4AF7D272E9402AC004F0F59 /* SentryUIRedactBuilderTests+SpecialViews.swift */; };
D4AF7D2A2E940493004F0F59 /* SentryUIRedactBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4AF7D292E940492004F0F59 /* SentryUIRedactBuilderTests.swift */; };
D4AF7D2C2E9404ED004F0F59 /* SentryUIRedactBuilderTests+EdgeCases.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4AF7D2B2E9404ED004F0F59 /* SentryUIRedactBuilderTests+EdgeCases.swift */; };
D4B0DC7F2DA9257A00DE61B6 /* SentryRenderVideoResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4B0DC7E2DA9257200DE61B6 /* SentryRenderVideoResult.swift */; };
D4C5F59A2D4249E6002A9BF6 /* DataSentryTracingIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4C5F5992D4249E0002A9BF6 /* DataSentryTracingIntegrationTests.swift */; };
D4CA34832E378C9900E92A61 /* SentryArrayTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4CA34822E378C9000E92A61 /* SentryArrayTests.swift */; };
Expand Down Expand Up @@ -980,7 +986,7 @@
D8DBE0CA2C0E093000FAB1FD /* SentryTouchTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8DBE0C92C0E093000FAB1FD /* SentryTouchTrackerTests.swift */; };
D8DBE0D22C0EFFC300FAB1FD /* SentryReplayOptionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8DBE0D12C0EFFC300FAB1FD /* SentryReplayOptionsTests.swift */; };
D8F67AF12BE0D33F00C9197B /* UIImageHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F67AEF2BE0D31A00C9197B /* UIImageHelperTests.swift */; };
D8F67AF42BE10F9600C9197B /* SentryUIRedactBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F67AF22BE10F7600C9197B /* SentryUIRedactBuilderTests.swift */; };
D8F67AF42BE10F9600C9197B /* SentryUIRedactBuilderTests+Common.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F67AF22BE10F7600C9197B /* SentryUIRedactBuilderTests+Common.swift */; };
D8F67B1B2BE9728600C9197B /* SentrySRDefaultBreadcrumbConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F67B1A2BE9728600C9197B /* SentrySRDefaultBreadcrumbConverter.swift */; };
D8F67B222BEAB6CC00C9197B /* SentryRRWebEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F67B212BEAB6CC00C9197B /* SentryRRWebEvent.swift */; };
D8F6A2472885512100320515 /* SentryPredicateDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = D8F6A2452885512100320515 /* SentryPredicateDescriptor.m */; };
Expand Down Expand Up @@ -2175,6 +2181,11 @@
D4AF00202D2E92FD00F5F3D7 /* SentryNSFileManagerSwizzling.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryNSFileManagerSwizzling.m; sourceTree = "<group>"; };
D4AF00222D2E931000F5F3D7 /* SentryNSFileManagerSwizzling.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SentryNSFileManagerSwizzling.h; path = include/SentryNSFileManagerSwizzling.h; sourceTree = "<group>"; };
D4AF00242D2E93C400F5F3D7 /* SentryNSFileManagerSwizzlingTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryNSFileManagerSwizzlingTests.m; sourceTree = "<group>"; };
D4AF7D212E93FFCA004F0F59 /* SentryUIRedactBuilderTests+ReactNative.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SentryUIRedactBuilderTests+ReactNative.swift"; sourceTree = "<group>"; };
D4AF7D252E9401EB004F0F59 /* SentryUIRedactBuilderTests+UIKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SentryUIRedactBuilderTests+UIKit.swift"; sourceTree = "<group>"; };
D4AF7D272E9402AC004F0F59 /* SentryUIRedactBuilderTests+SpecialViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SentryUIRedactBuilderTests+SpecialViews.swift"; sourceTree = "<group>"; };
D4AF7D292E940492004F0F59 /* SentryUIRedactBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryUIRedactBuilderTests.swift; sourceTree = "<group>"; };
D4AF7D2B2E9404ED004F0F59 /* SentryUIRedactBuilderTests+EdgeCases.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SentryUIRedactBuilderTests+EdgeCases.swift"; sourceTree = "<group>"; };
D4B0DC7E2DA9257200DE61B6 /* SentryRenderVideoResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryRenderVideoResult.swift; sourceTree = "<group>"; };
D4BCA0C22DA93C25009E49AB /* SentrySessionReplayIntegration+Test.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SentrySessionReplayIntegration+Test.h"; sourceTree = "<group>"; };
D4C5F5992D4249E0002A9BF6 /* DataSentryTracingIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSentryTracingIntegrationTests.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2341,7 +2352,7 @@
D8F01DE42A126B62008F4996 /* HybridPod.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; path = HybridPod.podspec; sourceTree = "<group>"; };
D8F01DE52A126BF5008F4996 /* HybridTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HybridTest.swift; sourceTree = "<group>"; };
D8F67AEF2BE0D31A00C9197B /* UIImageHelperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIImageHelperTests.swift; sourceTree = "<group>"; };
D8F67AF22BE10F7600C9197B /* SentryUIRedactBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryUIRedactBuilderTests.swift; sourceTree = "<group>"; };
D8F67AF22BE10F7600C9197B /* SentryUIRedactBuilderTests+Common.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SentryUIRedactBuilderTests+Common.swift"; sourceTree = "<group>"; };
D8F67B1A2BE9728600C9197B /* SentrySRDefaultBreadcrumbConverter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentrySRDefaultBreadcrumbConverter.swift; sourceTree = "<group>"; };
D8F67B212BEAB6CC00C9197B /* SentryRRWebEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryRRWebEvent.swift; sourceTree = "<group>"; };
D8F6A2452885512100320515 /* SentryPredicateDescriptor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryPredicateDescriptor.m; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2521,6 +2532,7 @@
buildActionMask = 2147483647;
files = (
8431F01C29B2854200D8DC56 /* libSentryTestUtils.a in Frameworks */,
D43C1BE82E8FB85400CD5D67 /* SnapshotTesting in Frameworks */,
D84DAD592B1742C1003CF120 /* SentryTestUtilsDynamic.framework in Frameworks */,
63AA766A1EB8CB2F00D153DE /* Sentry.framework in Frameworks */,
);
Expand Down Expand Up @@ -4220,8 +4232,14 @@
D4009EA02D77196F0007AF30 /* ViewCapture */ = {
isa = PBXGroup;
children = (
D4AF802E2E965188004F0F59 /* __Snapshots__ */,
D82915622C85EF0C00A6CDD4 /* SentryViewPhotographerTests.swift */,
D8F67AF22BE10F7600C9197B /* SentryUIRedactBuilderTests.swift */,
D4AF7D292E940492004F0F59 /* SentryUIRedactBuilderTests.swift */,
D8F67AF22BE10F7600C9197B /* SentryUIRedactBuilderTests+Common.swift */,
D4AF7D2B2E9404ED004F0F59 /* SentryUIRedactBuilderTests+EdgeCases.swift */,
D4AF7D272E9402AC004F0F59 /* SentryUIRedactBuilderTests+SpecialViews.swift */,
D4AF7D252E9401EB004F0F59 /* SentryUIRedactBuilderTests+UIKit.swift */,
D4AF7D212E93FFCA004F0F59 /* SentryUIRedactBuilderTests+ReactNative.swift */,
D45E2D762E003EBF0072A6B7 /* TestRedactOptions.swift */,
);
path = ViewCapture;
Expand Down Expand Up @@ -4327,6 +4345,13 @@
path = Screenshot;
sourceTree = "<group>";
};
D4AF802E2E965188004F0F59 /* __Snapshots__ */ = {
isa = PBXGroup;
children = (
);
path = __Snapshots__;
sourceTree = "<group>";
};
D4A0C22A2E9E3CE100791353 /* InfoPlist */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -5340,6 +5365,7 @@
);
name = SentryTests;
packageProductDependencies = (
D43C1BE72E8FB85400CD5D67 /* SnapshotTesting */,
);
productName = "Tests-iOS";
productReference = 63AA76651EB8CB2F00D153DE /* SentryTests.xctest */;
Expand Down Expand Up @@ -5510,6 +5536,7 @@
);
mainGroup = 6327C5C91EB8A783004E799B;
packageReferences = (
D43C1BE62E8FB85400CD5D67 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */,
);
productRefGroup = 6327C5D41EB8A783004E799B /* Products */;
projectDirPath = "";
Expand Down Expand Up @@ -6074,7 +6101,8 @@
FAC62B652E15A4100003909D /* SentrySDKThreadTests.swift in Sources */,
D82915632C85EF0C00A6CDD4 /* SentryViewPhotographerTests.swift in Sources */,
D8DBE0CA2C0E093000FAB1FD /* SentryTouchTrackerTests.swift in Sources */,
D8F67AF42BE10F9600C9197B /* SentryUIRedactBuilderTests.swift in Sources */,
D8F67AF42BE10F9600C9197B /* SentryUIRedactBuilderTests+Common.swift in Sources */,
D4AF7D2C2E9404ED004F0F59 /* SentryUIRedactBuilderTests+EdgeCases.swift in Sources */,
92ECD7482E05B57C0063EC10 /* SentryLogAttributeTests.swift in Sources */,
63B819141EC352A7002FDF4C /* SentryInterfacesTests.m in Sources */,
92B6BDA92E05B8F600D538B3 /* SentryLogLevelTests.swift in Sources */,
Expand Down Expand Up @@ -6147,6 +6175,7 @@
D45E2D772E003EBF0072A6B7 /* TestRedactOptions.swift in Sources */,
63FE720520DA66EC00CDBAE8 /* FileBasedTestCase.m in Sources */,
51B15F802BE88D510026A2F2 /* URLSessionTaskHelperTests.swift in Sources */,
D4AF7D262E9401EB004F0F59 /* SentryUIRedactBuilderTests+UIKit.swift in Sources */,
63EED6C32237989300E02400 /* SentryOptionsTest.m in Sources */,
7BBD18B22451804C00427C76 /* SentryRetryAfterHeaderParserTests.swift in Sources */,
7BD337E424A356180050DB6E /* SentryCrashIntegrationTests.swift in Sources */,
Expand All @@ -6159,6 +6188,7 @@
62F4DDA12C04CB9700588890 /* SentryBaggageSerializationTests.swift in Sources */,
7BE912AF272166DD00E49E62 /* SentryNoOpSpanTests.swift in Sources */,
D4F2B5352D0C69D500649E42 /* SentryCrashCTests.swift in Sources */,
D4AF7D2A2E940493004F0F59 /* SentryUIRedactBuilderTests.swift in Sources */,
7B56D73524616E5600B842DA /* SentryConcurrentRateLimitsDictionaryTests.swift in Sources */,
7B7D8730248648AD00D2ECFF /* SentryStacktraceBuilderTests.swift in Sources */,
FA21A2EF2E60E9CB00E7EADB /* EnvelopeComparison.swift in Sources */,
Expand Down Expand Up @@ -6271,6 +6301,7 @@
D80694C42B7CC9AE00B820E6 /* SentryReplayEventTests.swift in Sources */,
7B34721728086A9D0041F047 /* SentrySwizzleWrapperTests.swift in Sources */,
8EC4CF5025C3A0070093DEE9 /* SentrySpanContextTests.swift in Sources */,
D4AF7D282E9402AC004F0F59 /* SentryUIRedactBuilderTests+SpecialViews.swift in Sources */,
6281C5742D3E50DF009D0978 /* ArbitraryDataTests.swift in Sources */,
7BE0DC2F272ABAF6004FA8B7 /* SentryAutoBreadcrumbTrackingIntegrationTests.swift in Sources */,
7B869EBE249B964D004F4FDB /* SentryThreadEquality.swift in Sources */,
Expand Down Expand Up @@ -6354,6 +6385,7 @@
7B68D93625FF5F1A0082D139 /* SentryAppState+Equality.m in Sources */,
7B5CAF7E27F5AD3500ED0DB6 /* TestNSURLRequestBuilder.m in Sources */,
D467125E2DCCFF2500D4074A /* SentryReplayOptionsObjcTests.m in Sources */,
D4AF7D222E93FFCA004F0F59 /* SentryUIRedactBuilderTests+ReactNative.swift in Sources */,
7BF69E072987D1FE002EBCA4 /* SentryCrashDoctorTests.swift in Sources */,
7B4F22DC294089530067EA17 /* FormatHexAddress.swift in Sources */,
8EAC7FF8265C8910005B44E5 /* SentryTracerTests.swift in Sources */,
Expand Down Expand Up @@ -8899,6 +8931,25 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
D43C1BE62E8FB85400CD5D67 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/pointfreeco/swift-snapshot-testing";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.18.7;
};
};
/* End XCRemoteSwiftPackageReference section */

/* Begin XCSwiftPackageProductDependency section */
D43C1BE72E8FB85400CD5D67 /* SnapshotTesting */ = {
isa = XCSwiftPackageProductDependency;
package = D43C1BE62E8FB85400CD5D67 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */;
productName = SnapshotTesting;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 6327C5CA1EB8A783004E799B /* Project object */;
}
21 changes: 20 additions & 1 deletion Sources/Swift/Core/Tools/ViewCapture/SentryRedactRegion.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Foundation
import ObjectiveC.NSObjCRuntime
import UIKit

final class SentryRedactRegion {
final class SentryRedactRegion: Equatable {
let size: CGSize
let transform: CGAffineTransform
let type: SentryRedactRegionType
Expand All @@ -22,6 +22,25 @@ final class SentryRedactRegion {
func canReplace(as other: SentryRedactRegion) -> Bool {
size == other.size && transform == other.transform && type == other.type
}

static func == (lhs: SentryRedactRegion, rhs: SentryRedactRegion) -> Bool {
guard lhs.size == rhs.size else {
return false
}
guard lhs.transform == rhs.transform else {
return false
}
guard lhs.type == rhs.type else {
return false
}
guard lhs.color == rhs.color else {
return false
}
guard lhs.name == rhs.name else {
return false
}
return true
}
}
#endif
#endif
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
public enum SentryRedactRegionType: String, Codable {
public enum SentryRedactRegionType: String, Codable, Equatable {
/// Redacts the region.
case redact = "redact"

Expand Down
Loading
Loading