Skip to content

Commit 089769b

Browse files
authored
ref: SentryUIViewControllerPerformanceTracker in Swift (#6422)
1 parent 23b6a91 commit 089769b

17 files changed

+116
-61
lines changed

Sentry.xcodeproj/project.pbxproj

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -712,9 +712,9 @@
712712
8EA9AF492665AC48002771B4 /* SentryPerformanceTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EA9AF482665AC48002771B4 /* SentryPerformanceTrackerTests.swift */; };
713713
8EAC7FF8265C8910005B44E5 /* SentryTracerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EAC7FF7265C8910005B44E5 /* SentryTracerTests.swift */; };
714714
8EAE8E5E2681768000D6958B /* URLSessionTaskMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EAE8E5D2681768000D6958B /* URLSessionTaskMock.m */; };
715-
8EAE9806261E87120073B6B3 /* SentryUIViewControllerPerformanceTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EAE9804261E87120073B6B3 /* SentryUIViewControllerPerformanceTracker.m */; };
715+
8EAE9806261E87120073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EAE9804261E87120073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.m */; };
716716
8EAE980B261E9F530073B6B3 /* SentryPerformanceTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EAE9809261E9F530073B6B3 /* SentryPerformanceTracker.h */; };
717-
8EAE980C261E9F530073B6B3 /* SentryUIViewControllerPerformanceTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EAE980A261E9F530073B6B3 /* SentryUIViewControllerPerformanceTracker.h */; };
717+
8EAE980C261E9F530073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EAE980A261E9F530073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.h */; };
718718
8EBF870926140D37001A6853 /* SentryPerformanceTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EBF870726140D37001A6853 /* SentryPerformanceTracker.m */; };
719719
8EC3AE7A25CA23B600E7591A /* SentrySpan.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC3AE7925CA23B600E7591A /* SentrySpan.m */; };
720720
8EC4CF4A25C38DAA0093DEE9 /* SentrySpanStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EC4CF4725C38CAF0093DEE9 /* SentrySpanStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -1114,6 +1114,7 @@
11141114
FAAB2EE02E4BE97500FE8B7E /* TestSentryNSApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAAB2EDF2E4BE96F00FE8B7E /* TestSentryNSApplication.swift */; };
11151115
FAAB2F972E4D345800FE8B7E /* SentryUIDeviceWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAAB2F962E4D344F00FE8B7E /* SentryUIDeviceWrapper.swift */; };
11161116
FAAB30F32E4E8F2C00FE8B7E /* SentryInAppLogic.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAAB30F22E4E8F2C00FE8B7E /* SentryInAppLogic.swift */; };
1117+
FAB007362E9EF8D3001C806A /* SentryUIViewControllerPerformanceTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAB007302E9EF8CB001C806A /* SentryUIViewControllerPerformanceTracker.swift */; };
11171118
FAB359982E05D7E90083D5E3 /* SentryEventSwiftHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = FAB359972E05D7E90083D5E3 /* SentryEventSwiftHelper.h */; };
11181119
FAB3599A2E05D8080083D5E3 /* SentryEventSwiftHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = FAB359992E05D8080083D5E3 /* SentryEventSwiftHelper.m */; };
11191120
FAB7BBA92E2577A6007301E1 /* SentryModels+Serializable.h in Headers */ = {isa = PBXBuildFile; fileRef = FAB7BBA82E2577A2007301E1 /* SentryModels+Serializable.h */; };
@@ -2053,9 +2054,9 @@
20532054
8EAC7FF7265C8910005B44E5 /* SentryTracerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryTracerTests.swift; sourceTree = "<group>"; };
20542055
8EAE8E5C2681768000D6958B /* URLSessionTaskMock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = URLSessionTaskMock.h; sourceTree = "<group>"; };
20552056
8EAE8E5D2681768000D6958B /* URLSessionTaskMock.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = URLSessionTaskMock.m; sourceTree = "<group>"; };
2056-
8EAE9804261E87120073B6B3 /* SentryUIViewControllerPerformanceTracker.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryUIViewControllerPerformanceTracker.m; sourceTree = "<group>"; };
2057+
8EAE9804261E87120073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryDefaultUIViewControllerPerformanceTracker.m; sourceTree = "<group>"; };
20572058
8EAE9809261E9F530073B6B3 /* SentryPerformanceTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SentryPerformanceTracker.h; path = include/SentryPerformanceTracker.h; sourceTree = "<group>"; };
2058-
8EAE980A261E9F530073B6B3 /* SentryUIViewControllerPerformanceTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SentryUIViewControllerPerformanceTracker.h; path = include/SentryUIViewControllerPerformanceTracker.h; sourceTree = "<group>"; };
2059+
8EAE980A261E9F530073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SentryDefaultUIViewControllerPerformanceTracker.h; path = include/SentryDefaultUIViewControllerPerformanceTracker.h; sourceTree = "<group>"; };
20592060
8EBF870726140D37001A6853 /* SentryPerformanceTracker.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryPerformanceTracker.m; sourceTree = "<group>"; };
20602061
8EC3AE7925CA23B600E7591A /* SentrySpan.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentrySpan.m; sourceTree = "<group>"; };
20612062
8EC4CF4725C38CAF0093DEE9 /* SentrySpanStatus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SentrySpanStatus.h; path = Public/SentrySpanStatus.h; sourceTree = "<group>"; };
@@ -2476,6 +2477,7 @@
24762477
FAAB2EDF2E4BE96F00FE8B7E /* TestSentryNSApplication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestSentryNSApplication.swift; sourceTree = "<group>"; };
24772478
FAAB2F962E4D344F00FE8B7E /* SentryUIDeviceWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryUIDeviceWrapper.swift; sourceTree = "<group>"; };
24782479
FAAB30F22E4E8F2C00FE8B7E /* SentryInAppLogic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryInAppLogic.swift; sourceTree = "<group>"; };
2480+
FAB007302E9EF8CB001C806A /* SentryUIViewControllerPerformanceTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryUIViewControllerPerformanceTracker.swift; sourceTree = "<group>"; };
24792481
FAB359972E05D7E90083D5E3 /* SentryEventSwiftHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SentryEventSwiftHelper.h; path = include/SentryEventSwiftHelper.h; sourceTree = "<group>"; };
24802482
FAB359992E05D8080083D5E3 /* SentryEventSwiftHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryEventSwiftHelper.m; sourceTree = "<group>"; };
24812483
FAB7BBA82E2577A2007301E1 /* SentryModels+Serializable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "SentryModels+Serializable.h"; path = "include/SentryModels+Serializable.h"; sourceTree = "<group>"; };
@@ -3740,8 +3742,8 @@
37403742
children = (
37413743
8EA1ED0C2669028C00E62B98 /* SentryUIViewControllerSwizzling.h */,
37423744
8EA1ED092668F8C400E62B98 /* SentryUIViewControllerSwizzling.m */,
3743-
8EAE980A261E9F530073B6B3 /* SentryUIViewControllerPerformanceTracker.h */,
3744-
8EAE9804261E87120073B6B3 /* SentryUIViewControllerPerformanceTracker.m */,
3745+
8EAE980A261E9F530073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.h */,
3746+
8EAE9804261E87120073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.m */,
37453747
8EAE9809261E9F530073B6B3 /* SentryPerformanceTracker.h */,
37463748
8EBF870726140D37001A6853 /* SentryPerformanceTracker.m */,
37473749
D8BFE37029A3782F002E73F3 /* SentryTimeToDisplayTracker.h */,
@@ -4577,6 +4579,7 @@
45774579
D8739CF72BECFF92007D2F66 /* Performance */ = {
45784580
isa = PBXGroup;
45794581
children = (
4582+
FAB007302E9EF8CB001C806A /* SentryUIViewControllerPerformanceTracker.swift */,
45804583
FAE57BF12E83049900B710F9 /* SentryDisplayLinkWrapper.swift */,
45814584
D468C0602D36699700964230 /* IO */,
45824585
);
@@ -5015,7 +5018,7 @@
50155018
D8ACE3CD2762187D00F5A213 /* SentryNSDataSwizzling.h in Headers */,
50165019
7B08A3452924CF6C0059603A /* SentryMetricKitIntegration.h in Headers */,
50175020
0A2D8DA8289BC905008720F6 /* SentryViewHierarchyProviderHelper.h in Headers */,
5018-
8EAE980C261E9F530073B6B3 /* SentryUIViewControllerPerformanceTracker.h in Headers */,
5021+
8EAE980C261E9F530073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.h in Headers */,
50195022
63FE717D20DA4C1100CDBAE8 /* SentryCrashCachedData.h in Headers */,
50205023
03BCC38A27E1BF49003232C7 /* SentryTime.h in Headers */,
50215024
925824C22CB5897700C9B20B /* SentrySessionReplayIntegration-Hybrid.h in Headers */,
@@ -5996,9 +5999,10 @@
59965999
8ECC674925C23A20000E2BF6 /* SentrySpanId.m in Sources */,
59976000
6344DDB51EC309E000D9160D /* SentryCrashReportSink.m in Sources */,
59986001
D43B26D62D70964C007747FD /* SentrySpanOperation.m in Sources */,
5999-
8EAE9806261E87120073B6B3 /* SentryUIViewControllerPerformanceTracker.m in Sources */,
6002+
8EAE9806261E87120073B6B3 /* SentryDefaultUIViewControllerPerformanceTracker.m in Sources */,
60006003
D81988C72BEC18E20020E36C /* SentryRRWebVideoEvent.swift in Sources */,
60016004
621F61F12BEA073A005E654F /* SentryEnabledFeaturesBuilder.swift in Sources */,
6005+
FAB007362E9EF8D3001C806A /* SentryUIViewControllerPerformanceTracker.swift in Sources */,
60026006
D88817D826D7149100BF2251 /* SentryTraceContext.m in Sources */,
60036007
D8F67B1B2BE9728600C9197B /* SentrySRDefaultBreadcrumbConverter.swift in Sources */,
60046008
8EBF870926140D37001A6853 /* SentryPerformanceTracker.m in Sources */,

SentryTestUtils/SentryTestUtils-ObjC-BridgingHeader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
#if SENTRY_HAS_UIKIT
1010
# import "SentryAppStartTracker.h"
11+
# import "SentryDefaultUIViewControllerPerformanceTracker.h"
1112
# import "SentryFramesTracker+TestInit.h"
12-
# import "SentryUIViewControllerPerformanceTracker.h"
1313
#endif // SENTRY_HAS_UIKIT
1414

1515
#import "SentryProfilingConditionals.h"

Sources/Sentry/SentryUIViewControllerPerformanceTracker.m renamed to Sources/Sentry/SentryDefaultUIViewControllerPerformanceTracker.m

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#import "SentryUIViewControllerPerformanceTracker.h"
1+
#import "SentryDefaultUIViewControllerPerformanceTracker.h"
22
#import "SentryInternalDefines.h"
33

44
#if SENTRY_HAS_UIKIT
@@ -23,7 +23,10 @@ @interface SentryTimeToDisplayTracker () <SentryInitialDisplayReporting>
2323

2424
@end
2525

26-
@implementation SentrySwiftUISpanHelper
26+
@interface SentryObjCSwiftUISpanHelper ()
27+
@end
28+
29+
@implementation SentryObjCSwiftUISpanHelper
2730

2831
- (instancetype)initWithHasSpan:(BOOL)hasSpan
2932
initialDisplayReporting:(id<SentryInitialDisplayReporting>)initialDisplayReporting
@@ -63,7 +66,7 @@ - (instancetype)initWithHasSpan:(BOOL)hasSpan
6366
// remove any entries with weak keys that have been deallocated. This will ensure that we don't
6467
// keep any references to deallocated objects in the map tables and have a memory leak.
6568

66-
@interface SentryUIViewControllerPerformanceTracker ()
69+
@interface SentryDefaultUIViewControllerPerformanceTracker ()
6770

6871
@property (nonatomic, strong) SentryPerformanceTracker *tracker;
6972
@property (nullable, nonatomic, weak) SentryTimeToDisplayTracker *currentTTDTracker;
@@ -79,7 +82,7 @@ @interface SentryUIViewControllerPerformanceTracker ()
7982

8083
@end
8184

82-
@implementation SentryUIViewControllerPerformanceTracker
85+
@implementation SentryDefaultUIViewControllerPerformanceTracker
8386

8487
- (instancetype)initWithTracker:(SentryPerformanceTracker *)tracker
8588
dispatchQueueWrapper:(SentryDispatchQueueWrapper *)dispatchQueueWrapper
@@ -276,7 +279,7 @@ - (SentrySwiftUISpanHelper *)startTimeToDisplayTrackerForScreen:(NSString *)scre
276279
{
277280
id<SentrySpan> span = [SentryPerformanceTracker.shared getSpan:transactionId];
278281
if (span != nil && [span isKindOfClass:[SentryTracer class]]) {
279-
id<SentryInitialDisplayReporting> displayReporting =
282+
SentryTimeToDisplayTracker *displayReporting =
280283
[self startTimeToDisplayTrackerForScreen:screenName
281284
waitForFullDisplay:waitforFullDisplay
282285
tracer:(SentryTracer *)span];
@@ -286,6 +289,20 @@ - (SentrySwiftUISpanHelper *)startTimeToDisplayTrackerForScreen:(NSString *)scre
286289
return [[SentrySwiftUISpanHelper alloc] initWithHasSpan:NO initialDisplayReporting:nil];
287290
}
288291

292+
+ (SentryObjCSwiftUISpanHelper *)startTimeToDisplayTrackerForScreen:(NSString *)screenName
293+
waitForFullDisplay:(BOOL)waitforFullDisplay
294+
transactionId:(SentrySpanId *)transactionId;
295+
{
296+
id<SentryUIViewControllerPerformanceTracker> vcTracker
297+
= SentryDependencyContainer.sharedInstance.uiViewControllerPerformanceTracker;
298+
SentrySwiftUISpanHelper *result =
299+
[vcTracker startTimeToDisplayTrackerForScreen:screenName
300+
waitForFullDisplay:waitforFullDisplay
301+
transactionId:transactionId];
302+
return [[SentryObjCSwiftUISpanHelper alloc] initWithHasSpan:result.hasSpan
303+
initialDisplayReporting:result.initialDisplayReporting];
304+
}
305+
289306
- (void)viewControllerViewWillAppear:(UIViewController *)controller
290307
callbackToOrigin:(void (^)(void))callbackToOrigin
291308
{

Sources/Sentry/SentryDependencyContainer.m

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313
#import <SentryCrash.h>
1414
#import <SentryDebugImageProvider+HybridSDKs.h>
1515
#import <SentryDefaultAppStateManager.h>
16+
#import <SentryDefaultUIViewControllerPerformanceTracker.h>
1617
#import <SentryDependencyContainer.h>
1718
#import <SentryPerformanceTracker.h>
1819
#import <SentrySDK+Private.h>
1920
#import <SentrySwift.h>
2021
#import <SentrySwizzleWrapper.h>
2122
#import <SentryTracer.h>
22-
#import <SentryUIViewControllerPerformanceTracker.h>
2323
#import <SentryWatchdogTerminationScopeObserver.h>
2424

2525
#if SENTRY_HAS_UIKIT
@@ -65,6 +65,12 @@ @interface SentryFileManager () <SentryFileManagerProtocol>
6565
@interface SentryDefaultAppStateManager () <SentryAppStateManager>
6666
@end
6767

68+
#if SENTRY_HAS_UIKIT
69+
@interface SentryDefaultUIViewControllerPerformanceTracker () <
70+
SentryUIViewControllerPerformanceTracker>
71+
@end
72+
#endif
73+
6874
@interface SentryDependencyContainer ()
6975

7076
@property (nonatomic, strong) id<SentryANRTracker> anrTracker;
@@ -315,12 +321,12 @@ - (SentryViewHierarchyProvider *)viewHierarchyProvider SENTRY_THREAD_SANITIZER_D
315321
# endif // SENTRY_HAS_UIKIT
316322
}
317323

318-
- (SentryUIViewControllerPerformanceTracker *)
324+
- (id<SentryUIViewControllerPerformanceTracker>)
319325
uiViewControllerPerformanceTracker SENTRY_THREAD_SANITIZER_DOUBLE_CHECKED_LOCK
320326
{
321327
# if SENTRY_HAS_UIKIT
322328
SENTRY_LAZY_INIT(_uiViewControllerPerformanceTracker,
323-
[[SentryUIViewControllerPerformanceTracker alloc]
329+
[[SentryDefaultUIViewControllerPerformanceTracker alloc]
324330
initWithTracker:SentryPerformanceTracker.shared
325331
dispatchQueueWrapper:[self dispatchQueueWrapper]]);
326332
# else

Sources/Sentry/SentryHub.m

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@
2424
#import "SentryTransaction.h"
2525
#import "SentryTransactionContext+Private.h"
2626

27-
#if SENTRY_HAS_UIKIT
28-
# import "SentryUIViewControllerPerformanceTracker.h"
29-
#endif // SENTRY_HAS_UIKIT
30-
3127
NS_ASSUME_NONNULL_BEGIN
3228

3329
@interface SentryHub ()

Sources/Sentry/SentryPerformanceTrackingIntegration.m

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
# import "SentryOptions.h"
88
# import "SentrySubClassFinder.h"
99
# import "SentrySwift.h"
10-
# import "SentryUIViewControllerPerformanceTracker.h"
1110
# import "SentryUIViewControllerSwizzling.h"
1211

1312
@interface SentryPerformanceTrackingIntegration ()
@@ -44,7 +43,7 @@ - (BOOL)installWithOptions:(SentryOptions *)options
4443
binaryImageCache:[SentryDependencyContainer.sharedInstance binaryImageCache]];
4544

4645
[self.swizzling start];
47-
SentryUIViewControllerPerformanceTracker *performanceTracker =
46+
id<SentryUIViewControllerPerformanceTracker> performanceTracker =
4847
[SentryDependencyContainer.sharedInstance uiViewControllerPerformanceTracker];
4948
performanceTracker.alwaysWaitForFullDisplay = options.enableTimeToFullDisplayTracing;
5049

Sources/Sentry/SentrySDKInternal.m

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
#endif // TARGET_OS_MAC
2929

3030
#if SENTRY_HAS_UIKIT
31-
# import "SentryUIViewControllerPerformanceTracker.h"
3231
# if TARGET_OS_IOS
3332
# import "SentryFeedbackAPI.h"
3433
# endif // TARGET_OS_IOS

Sources/Sentry/SentryTracer.m

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
# import "SentryAppStartMeasurement.h"
3737
# import "SentryBuildAppStartSpans.h"
3838
# import "SentryFramesTracker.h"
39-
# import "SentryUIViewControllerPerformanceTracker.h"
4039
#endif // SENTRY_HAS_UIKIT
4140

4241
NS_ASSUME_NONNULL_BEGIN

Sources/Sentry/SentryUIViewControllerSwizzling.m

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
# import "SentrySubClassFinder.h"
99
# import "SentrySwift.h"
1010
# import "SentrySwizzle.h"
11-
# import "SentryUIViewControllerPerformanceTracker.h"
1211
# import <SentryOptions.h>
1312
# import <UIKit/UIKit.h>
1413
# import <UIViewController+Sentry.h>
@@ -111,7 +110,7 @@ - (void)start
111110
}
112111

113112
[self swizzleUIViewController];
114-
SentryUIViewControllerPerformanceTracker *performanceTracker =
113+
id<SentryUIViewControllerPerformanceTracker> performanceTracker =
115114
[SentryDependencyContainer.sharedInstance uiViewControllerPerformanceTracker];
116115
performanceTracker.inAppLogic = self.inAppLogic;
117116
}

Sources/Sentry/include/HybridPublic/SentryDependencyContainer.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,10 @@
4646
@class SentryFramesTracker;
4747
@class SentryScreenshotSource;
4848
@class SentryViewHierarchyProvider;
49-
@class SentryUIViewControllerPerformanceTracker;
5049
@class SentryWatchdogTerminationAttributesProcessor;
50+
5151
@protocol SentryScopeObserver;
52+
@protocol SentryUIViewControllerPerformanceTracker;
5253
#endif // SENTRY_UIKIT_AVAILABLE
5354

5455
#if SENTRY_HAS_UIKIT
@@ -128,8 +129,8 @@ SENTRY_NO_INIT
128129
#if SENTRY_UIKIT_AVAILABLE
129130
@property (nonatomic, strong) SentryFramesTracker *framesTracker;
130131
@property (nonatomic, strong) SentryViewHierarchyProvider *viewHierarchyProvider;
131-
@property (nonatomic, strong)
132-
SentryUIViewControllerPerformanceTracker *uiViewControllerPerformanceTracker;
132+
@property (nonatomic, strong) id<SentryUIViewControllerPerformanceTracker>
133+
uiViewControllerPerformanceTracker;
133134
#endif // SENTRY_UIKIT_AVAILABLE
134135

135136
#if SENTRY_TARGET_REPLAY_SUPPORTED

0 commit comments

Comments
 (0)