diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fc65669dd1..2cee209478 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -40,15 +40,15 @@ jobs: xcode-analyze: name: Xcode Analyze - runs-on: macos-13 + runs-on: macos-14 steps: - uses: actions/checkout@v4 - - run: ./scripts/ci-select-xcode.sh + - run: ./scripts/ci-select-xcode.sh 15.0 - run: make analyze lint-podspec: name: pod lint ${{ matrix.podspec}} ${{ matrix.library_type }} ${{ matrix.platform}} - runs-on: macos-13 + runs-on: macos-14 strategy: fail-fast: false matrix: @@ -58,7 +58,7 @@ jobs: steps: - uses: actions/checkout@v4 - - run: ./scripts/ci-select-xcode.sh + - run: ./scripts/ci-select-xcode.sh 15.0 # We need to update the spec-repo, because it can happen that it is not up to date and then the lint fails. - run: pod repo update - name: Validate Podspec @@ -66,11 +66,11 @@ jobs: lint-hybrid-sdk-podspec: name: pod lint Sentry/HybridSDK - runs-on: macos-13 + runs-on: macos-14 steps: - uses: actions/checkout@v4 - - run: ./scripts/ci-select-xcode.sh + - run: ./scripts/ci-select-xcode.sh 15.0 - run: pod repo update - name: Validate HybridPod Podspec run: pod lib lint ./Tests/HybridSDKTest/HybridPod.podspec --allow-warnings --verbose --platforms=ios "--include-podspecs={Sentry.podspec}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b36713778..225cd80d85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ - Concurrency crash with Swift 6 (#4512) - Make `Scope.span` fully thread safe (#4519) +### Improvements + +- Expose `Sentry._Hybrid` explicit module (#4440) + ## 8.40.1 ### Fixes diff --git a/Samples/Carthage-Validation/XCFramework/XCFramework/AppDelegate.swift b/Samples/Carthage-Validation/XCFramework/XCFramework/AppDelegate.swift index c28338b4ce..80f6a990f7 100644 --- a/Samples/Carthage-Validation/XCFramework/XCFramework/AppDelegate.swift +++ b/Samples/Carthage-Validation/XCFramework/XCFramework/AppDelegate.swift @@ -1,4 +1,5 @@ import Sentry +import Sentry._Hybrid import UIKit @main @@ -12,6 +13,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate { options.sessionTrackingIntervalMillis = 5_000 } + // Available through Sentry._Hybrid + print(PrivateSentrySDKOnly.getSdkName()) + return true } diff --git a/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj b/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj index e526e9c0b2..8d74641a75 100644 --- a/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj +++ b/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj @@ -302,7 +302,6 @@ D8269A42274C095F00BD5BD5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; D8269A49274C096000BD5BD5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D8269A5C274C108100BD5BD5 /* iOS13-Swift.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "iOS13-Swift.entitlements"; sourceTree = ""; }; - D82915932C889F1800A6CDD4 /* SentryCocoaPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SentryCocoaPrivate.h; sourceTree = ""; }; D83A30DF279F1F5C00372D0A /* fatal-error-binary-images-message2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "fatal-error-binary-images-message2.json"; path = "../../../Tests/Resources/fatal-error-binary-images-message2.json"; sourceTree = ""; }; D840D520273A07F400CDF142 /* iOS-SwiftClip.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS-SwiftClip.app"; sourceTree = BUILT_PRODUCTS_DIR; }; D840D522273A07F400CDF142 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -624,7 +623,6 @@ D8F01DF02A1377D0008F4996 /* SentryExposure.h */, D8832B192AF4FE2000C522B0 /* SentryUIApplication.h */, 629EC8AC2B0B537400858855 /* TriggerAppHang.swift */, - D82915932C889F1800A6CDD4 /* SentryCocoaPrivate.h */, 84BA71E32C8BBBEC0045B828 /* DSNDisplayViewController.swift */, 84BA71F02C8BC55A0045B828 /* Toasts.swift */, ); diff --git a/Samples/iOS-Swift/iOS-Swift/Tools/SentryCocoaPrivate.h b/Samples/iOS-Swift/iOS-Swift/Tools/SentryCocoaPrivate.h deleted file mode 100644 index b93ea30984..0000000000 --- a/Samples/iOS-Swift/iOS-Swift/Tools/SentryCocoaPrivate.h +++ /dev/null @@ -1,32 +0,0 @@ -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SentryEnvelopeHeader : NSObject - -- (instancetype)initWithId:(SentryId *_Nullable)eventId; - -@property (nullable, nonatomic, copy) NSDate *sentAt; -@property (nullable, nonatomic, readonly, copy) SentryId *eventId; - -@end - -@interface SentryEnvelopeItem : NSObject - -- (instancetype)initWithEvent:(SentryEvent *)event; - -@property (nonatomic, readonly, strong) SentryEnvelopeItemHeader *header; -@property (nonatomic, readonly, strong) NSData *data; - -@end - -@interface SentryEnvelope : NSObject - -@property (nonatomic, readonly, strong) SentryEnvelopeHeader *header; -@property (nonatomic, readonly, strong) NSArray *items; - -- (instancetype)initWithId:(SentryId *_Nullable)id singleItem:(SentryEnvelopeItem *)item; -@end - -NS_ASSUME_NONNULL_END diff --git a/Samples/iOS-Swift/iOS-Swift/Tools/iOS-Swift-Bridging-Header.h b/Samples/iOS-Swift/iOS-Swift/Tools/iOS-Swift-Bridging-Header.h index f2b27c7995..dc79377f45 100644 --- a/Samples/iOS-Swift/iOS-Swift/Tools/iOS-Swift-Bridging-Header.h +++ b/Samples/iOS-Swift/iOS-Swift/Tools/iOS-Swift-Bridging-Header.h @@ -1,5 +1,4 @@ #import "SentryBenchmarking.h" -#import "SentryCocoaPrivate.h" #import "SentryExposure.h" #import "SentryUIApplication.h" #import diff --git a/Samples/iOS-Swift/iOS13-Swift/iOS13-Swift-Bridging-Header.h b/Samples/iOS-Swift/iOS13-Swift/iOS13-Swift-Bridging-Header.h index 9ada589358..dfdc4e5eee 100644 --- a/Samples/iOS-Swift/iOS13-Swift/iOS13-Swift-Bridging-Header.h +++ b/Samples/iOS-Swift/iOS13-Swift/iOS13-Swift-Bridging-Header.h @@ -1,5 +1,4 @@ #import "SentryBenchmarking.h" -#import "SentryCocoaPrivate.h" #import "SentryUIApplication.h" #import #import diff --git a/Sentry.xcodeproj/project.pbxproj b/Sentry.xcodeproj/project.pbxproj index bf4a5fcb6f..b687cc22d0 100644 --- a/Sentry.xcodeproj/project.pbxproj +++ b/Sentry.xcodeproj/project.pbxproj @@ -31,7 +31,7 @@ 0A283E79291A67E000EF4126 /* SentryUIDeviceWrapperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A283E78291A67E000EF4126 /* SentryUIDeviceWrapperTests.swift */; }; 0A2D7BBA29152CBF008727AF /* SentryWatchdogTerminationsScopeObserverTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A2D7BB929152CBF008727AF /* SentryWatchdogTerminationsScopeObserverTests.swift */; }; 0A2D8D5B289815C0008720F6 /* SentryBaseIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A2D8D5A289815C0008720F6 /* SentryBaseIntegration.m */; }; - 0A2D8D5D289815EB008720F6 /* SentryBaseIntegration.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A2D8D5C289815EB008720F6 /* SentryBaseIntegration.h */; }; + 0A2D8D5D289815EB008720F6 /* SentryBaseIntegration.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A2D8D5C289815EB008720F6 /* SentryBaseIntegration.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0A2D8D8728992260008720F6 /* SentryBaseIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A2D8D8628992260008720F6 /* SentryBaseIntegrationTests.swift */; }; 0A2D8D9628997845008720F6 /* NSLocale+Sentry.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A2D8D9428997845008720F6 /* NSLocale+Sentry.m */; }; 0A2D8D9828997887008720F6 /* NSLocale+Sentry.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A2D8D9728997887008720F6 /* NSLocale+Sentry.h */; }; @@ -89,8 +89,8 @@ 623C45B02A651D8200D9E88B /* SentryCoreDataTracker+Test.m in Sources */ = {isa = PBXBuildFile; fileRef = 623C45AF2A651D8200D9E88B /* SentryCoreDataTracker+Test.m */; }; 624688192C048EF10006179C /* SentryBaggageSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 624688182C048EF10006179C /* SentryBaggageSerialization.swift */; }; 626E2D4C2BEA0C37005596FE /* SentryEnabledFeaturesBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 626E2D4B2BEA0C37005596FE /* SentryEnabledFeaturesBuilderTests.swift */; }; - 6271ADF32BA06D9B0098D2E9 /* SentryInternalSerializable.h in Headers */ = {isa = PBXBuildFile; fileRef = 6271ADF22BA06D9B0098D2E9 /* SentryInternalSerializable.h */; }; - 6273513F2CBD14970021D100 /* SentryDebugImageProvider+HybridSDKs.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273513E2CBD14970021D100 /* SentryDebugImageProvider+HybridSDKs.h */; }; + 6271ADF32BA06D9B0098D2E9 /* SentryInternalSerializable.h in Headers */ = {isa = PBXBuildFile; fileRef = 6271ADF22BA06D9B0098D2E9 /* SentryInternalSerializable.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 6273513F2CBD14970021D100 /* SentryDebugImageProvider+HybridSDKs.h in Headers */ = {isa = PBXBuildFile; fileRef = 6273513E2CBD14970021D100 /* SentryDebugImageProvider+HybridSDKs.h */; settings = {ATTRIBUTES = (Private, ); }; }; 627E7589299F6FE40085504D /* SentryInternalDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 627E7588299F6FE40085504D /* SentryInternalDefines.h */; }; 62862B1C2B1DDBC8009B16E3 /* SentryDelayedFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 62862B1B2B1DDBC8009B16E3 /* SentryDelayedFrame.h */; }; 62862B1E2B1DDC35009B16E3 /* SentryDelayedFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 62862B1D2B1DDC35009B16E3 /* SentryDelayedFrame.m */; }; @@ -164,7 +164,7 @@ 638DC9A11EBC6B6400A66E41 /* SentryRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 638DC99F1EBC6B6400A66E41 /* SentryRequestOperation.m */; }; 639889B71EDECFA800EA7442 /* SentryBreadcrumbTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 639889B51EDECFA800EA7442 /* SentryBreadcrumbTracker.h */; }; 639889B81EDECFA800EA7442 /* SentryBreadcrumbTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 639889B61EDECFA800EA7442 /* SentryBreadcrumbTracker.m */; }; - 639889BB1EDED18400EA7442 /* SentrySwizzle.h in Headers */ = {isa = PBXBuildFile; fileRef = 639889B91EDED18400EA7442 /* SentrySwizzle.h */; }; + 639889BB1EDED18400EA7442 /* SentrySwizzle.h in Headers */ = {isa = PBXBuildFile; fileRef = 639889B91EDED18400EA7442 /* SentrySwizzle.h */; settings = {ATTRIBUTES = (Private, ); }; }; 639889BD1EDED18400EA7442 /* SentrySwizzle.m in Sources */ = {isa = PBXBuildFile; fileRef = 639889BA1EDED18400EA7442 /* SentrySwizzle.m */; }; 639FCF981EBC7B9700778193 /* SentryEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 639FCF961EBC7B9700778193 /* SentryEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; 639FCF991EBC7B9700778193 /* SentryEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 639FCF971EBC7B9700778193 /* SentryEvent.m */; }; @@ -364,7 +364,7 @@ 7B3B473E25D6CEA500D01640 /* SentryNSErrorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B3B473D25D6CEA500D01640 /* SentryNSErrorTests.swift */; }; 7B3B83722833832B0001FDEB /* SentrySpanOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B3B83712833832B0001FDEB /* SentrySpanOperations.h */; }; 7B4260342630315C00B36EDD /* SampleError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B4260332630315C00B36EDD /* SampleError.swift */; }; - 7B42C48027E08F33009B58C2 /* SentryDependencyContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B42C47F27E08F33009B58C2 /* SentryDependencyContainer.h */; }; + 7B42C48027E08F33009B58C2 /* SentryDependencyContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B42C47F27E08F33009B58C2 /* SentryDependencyContainer.h */; settings = {ATTRIBUTES = (Private, ); }; }; 7B42C48227E08F4B009B58C2 /* SentryDependencyContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B42C48127E08F4B009B58C2 /* SentryDependencyContainer.m */; }; 7B4D308A26FC616B00C94DE9 /* SentryHttpTransportTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B4D308926FC616B00C94DE9 /* SentryHttpTransportTests.swift */; }; 7B4E23B6251A07BD00060D68 /* SentryDispatchQueueWrapperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B4E23B5251A07BD00060D68 /* SentryDispatchQueueWrapperTests.swift */; }; @@ -405,7 +405,7 @@ 7B6C5EDA264E8D860010D138 /* SentryFramesTrackingIntegration.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B6C5ED9264E8D860010D138 /* SentryFramesTrackingIntegration.h */; }; 7B6C5EDC264E8DA80010D138 /* SentryFramesTrackingIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B6C5EDB264E8DA80010D138 /* SentryFramesTrackingIntegration.m */; }; 7B6C5EDE264E8DF00010D138 /* SentryFramesTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B6C5EDD264E8DF00010D138 /* SentryFramesTracker.m */; }; - 7B6C5EE0264E8E050010D138 /* SentryFramesTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B6C5EDF264E8E050010D138 /* SentryFramesTracker.h */; }; + 7B6C5EE0264E8E050010D138 /* SentryFramesTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B6C5EDF264E8E050010D138 /* SentryFramesTracker.h */; settings = {ATTRIBUTES = (Private, ); }; }; 7B6C5F8126034354007F7DFF /* SentryWatchdogTerminationLogic.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B6C5F8026034354007F7DFF /* SentryWatchdogTerminationLogic.h */; }; 7B6C5F8726034395007F7DFF /* SentryWatchdogTerminationLogic.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B6C5F8626034395007F7DFF /* SentryWatchdogTerminationLogic.m */; }; 7B6CC50224EE5A42001816D7 /* SentryHubTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B6CC50124EE5A42001816D7 /* SentryHubTests.swift */; }; @@ -471,7 +471,7 @@ 7BA61CB9247BC57B00C130A8 /* SentryCrashDefaultBinaryImageProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA61CB8247BC57B00C130A8 /* SentryCrashDefaultBinaryImageProvider.h */; }; 7BA61CBB247BC5D800C130A8 /* SentryCrashDefaultBinaryImageProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BA61CBA247BC5D800C130A8 /* SentryCrashDefaultBinaryImageProvider.m */; }; 7BA61CBD247BC6B900C130A8 /* TestSentryCrashBinaryImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA61CBC247BC6B900C130A8 /* TestSentryCrashBinaryImageProvider.swift */; }; - 7BA61CBF247CEA8100C130A8 /* SentryFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA61CBE247CEA8100C130A8 /* SentryFormatter.h */; }; + 7BA61CBF247CEA8100C130A8 /* SentryFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA61CBE247CEA8100C130A8 /* SentryFormatter.h */; settings = {ATTRIBUTES = (Private, ); }; }; 7BA61CC6247CFC5F00C130A8 /* SentryCrashDefaultBinaryImageProviderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA61CC5247CFC5F00C130A8 /* SentryCrashDefaultBinaryImageProviderTests.swift */; }; 7BA61CC8247D125400C130A8 /* SentryThreadInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA61CC7247D125400C130A8 /* SentryThreadInspector.h */; }; 7BA61CCA247D128B00C130A8 /* SentryThreadInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BA61CC9247D128B00C130A8 /* SentryThreadInspector.m */; }; @@ -736,7 +736,6 @@ 8E7C982F2693D56000E6336C /* SentryTraceHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E7C982D2693D56000E6336C /* SentryTraceHeader.m */; }; 8E7C98312693E1CC00E6336C /* SentryTraceHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E7C98302693E1CC00E6336C /* SentryTraceHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8E8C57A225EEFC07001CEEFA /* SentrySampling.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E8C57A025EEFC07001CEEFA /* SentrySampling.m */; }; - 8E8C57A625EEFC43001CEEFA /* SentrySampling.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E8C57A525EEFC42001CEEFA /* SentrySampling.h */; }; 8EA05EED267C2AB200C82B30 /* SentryNetworkTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EA05EEC267C2AB200C82B30 /* SentryNetworkTrackerTests.swift */; }; 8EA1ED0B2668F8C400E62B98 /* SentryUIViewControllerSwizzling.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA1ED092668F8C400E62B98 /* SentryUIViewControllerSwizzling.m */; }; 8EA1ED0D2669028C00E62B98 /* SentryUIViewControllerSwizzling.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EA1ED0C2669028C00E62B98 /* SentryUIViewControllerSwizzling.h */; }; @@ -762,12 +761,13 @@ 8F0D6AA22B04115A00D048B1 /* SentryInstallation+Test.h in Sources */ = {isa = PBXBuildFile; fileRef = 8F0D6AA12B040A0100D048B1 /* SentryInstallation+Test.h */; }; 8F73BC312B02B87E00C3CEF4 /* SentryInstallationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F73BC302B02B87E00C3CEF4 /* SentryInstallationTests.swift */; }; 92136D672C9D7660002A9FB8 /* SentryNSURLRequestBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92136D662C9D765D002A9FB8 /* SentryNSURLRequestBuilderTests.swift */; }; - 92672BB629C9A2A9006B021C /* SentryBreadcrumb+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 92672BB529C9A2A9006B021C /* SentryBreadcrumb+Private.h */; }; + 925824C22CB5897700C9B20B /* SentrySessionReplayIntegration-Hybrid.h in Headers */ = {isa = PBXBuildFile; fileRef = D80382BE2C09C6FD0090E048 /* SentrySessionReplayIntegration-Hybrid.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 92672BB629C9A2A9006B021C /* SentryBreadcrumb+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 92672BB529C9A2A9006B021C /* SentryBreadcrumb+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 9286059529A5096600F96038 /* SentryGeo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9286059429A5096600F96038 /* SentryGeo.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9286059729A5098900F96038 /* SentryGeo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9286059629A5098900F96038 /* SentryGeo.m */; }; 9286059929A50BAB00F96038 /* SentryGeoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9286059829A50BAA00F96038 /* SentryGeoTests.swift */; }; - 92CC6E332CD13E6100AE7861 /* SentrySessionReplayIntegration-Hybrid.h in Headers */ = {isa = PBXBuildFile; fileRef = D80382BE2C09C6FD0090E048 /* SentrySessionReplayIntegration-Hybrid.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 92F6726B29C8B7B100BFD34D /* SentryUser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 92F6726A29C8B7B000BFD34D /* SentryUser+Private.h */; }; + 92E5F3D62CDBB3BF00B7AD98 /* SentrySampling.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E8C57A525EEFC42001CEEFA /* SentrySampling.h */; }; + 92F6726B29C8B7B100BFD34D /* SentryUser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 92F6726A29C8B7B000BFD34D /* SentryUser+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; A811D867248E2770008A41EA /* SentrySystemEventBreadcrumbsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A811D866248E2770008A41EA /* SentrySystemEventBreadcrumbsTest.swift */; }; A839D89824864B80003B7AFD /* SentrySystemEventBreadcrumbs.h in Headers */ = {isa = PBXBuildFile; fileRef = A839D89724864B80003B7AFD /* SentrySystemEventBreadcrumbs.h */; }; A839D89A24864BA8003B7AFD /* SentrySystemEventBreadcrumbs.m in Sources */ = {isa = PBXBuildFile; fileRef = A839D89924864BA8003B7AFD /* SentrySystemEventBreadcrumbs.m */; }; @@ -803,7 +803,7 @@ D81A346C291AECC7005A27A9 /* PrivateSentrySDKOnly.h in Headers */ = {isa = PBXBuildFile; fileRef = D81A346B291AECC7005A27A9 /* PrivateSentrySDKOnly.h */; settings = {ATTRIBUTES = (Private, ); }; }; D81FDF12280EA1060045E0E4 /* SentryScreenShotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D81FDF10280EA0080045E0E4 /* SentryScreenShotTests.swift */; }; D820CDB72BB1895F00BA339D /* SentrySessionReplayIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = D820CDB62BB1895F00BA339D /* SentrySessionReplayIntegration.m */; }; - D820CDB82BB1895F00BA339D /* SentrySessionReplayIntegration.h in Headers */ = {isa = PBXBuildFile; fileRef = D820CDB52BB1895F00BA339D /* SentrySessionReplayIntegration.h */; }; + D820CDB82BB1895F00BA339D /* SentrySessionReplayIntegration.h in Headers */ = {isa = PBXBuildFile; fileRef = D820CDB52BB1895F00BA339D /* SentrySessionReplayIntegration.h */; settings = {ATTRIBUTES = (Private, ); }; }; D82859432C3E753C009A28AA /* SentrySessionReplaySyncC.c in Sources */ = {isa = PBXBuildFile; fileRef = D82859422C3E753C009A28AA /* SentrySessionReplaySyncC.c */; }; D82859442C3E753C009A28AA /* SentrySessionReplaySyncC.h in Headers */ = {isa = PBXBuildFile; fileRef = D82859412C3E753C009A28AA /* SentrySessionReplaySyncC.h */; }; D82915632C85EF0C00A6CDD4 /* SentryViewPhotographerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D82915622C85EF0C00A6CDD4 /* SentryViewPhotographerTests.swift */; }; @@ -837,7 +837,7 @@ D85790292976A69F00C6AC1F /* TestDebugImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D85790282976A69F00C6AC1F /* TestDebugImageProvider.swift */; }; D85852B627ECEEDA00C6D8AE /* SentryScreenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = D85852B427ECEEDA00C6D8AE /* SentryScreenshot.m */; }; D85852BA27EDDC5900C6D8AE /* SentryUIApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = D85852B827EDDC5900C6D8AE /* SentryUIApplication.m */; }; - D858FA662A29EAB3002A3503 /* SentryBinaryImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D858FA642A29EAB3002A3503 /* SentryBinaryImageCache.h */; }; + D858FA662A29EAB3002A3503 /* SentryBinaryImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D858FA642A29EAB3002A3503 /* SentryBinaryImageCache.h */; settings = {ATTRIBUTES = (Private, ); }; }; D858FA672A29EAB3002A3503 /* SentryBinaryImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = D858FA652A29EAB3002A3503 /* SentryBinaryImageCache.m */; }; D859696B27BECD8F0036A46E /* SentryCoreDataTrackingIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = D859696927BECD8F0036A46E /* SentryCoreDataTrackingIntegration.m */; }; D859696F27BECDA20036A46E /* SentryCoreDataTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = D859696D27BECDA20036A46E /* SentryCoreDataTracker.m */; }; @@ -3972,6 +3972,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 92E5F3D62CDBB3BF00B7AD98 /* SentrySampling.h in Headers */, 92672BB629C9A2A9006B021C /* SentryBreadcrumb+Private.h in Headers */, 03BCC38E27E2A377003232C7 /* SentryProfilingConditionals.h in Headers */, 0ADC33EE28D9BB890078D980 /* SentryUIDeviceWrapper.h in Headers */, @@ -4010,6 +4011,7 @@ 7BC9A20028F41016001E7C4C /* SentryMeasurementValue.h in Headers */, 7BBC826D25DFCFDE005F1ED8 /* SentryInAppLogic.h in Headers */, 03BCC38A27E1BF49003232C7 /* SentryTime.h in Headers */, + 925824C22CB5897700C9B20B /* SentrySessionReplayIntegration-Hybrid.h in Headers */, 7B0A54222521C21E00A71716 /* SentryFrameRemover.h in Headers */, 63FE70CD20DA4C1000CDBAE8 /* SentryCrashDoctor.h in Headers */, D8C67E9B28000E24007E326E /* SentryUIApplication.h in Headers */, @@ -4211,8 +4213,6 @@ 63FE716F20DA4C1100CDBAE8 /* SentryCrashCPU_Apple.h in Headers */, 639FCFA81EBC80CC00778193 /* SentryFrame.h in Headers */, D8BFE37229A3782F002E73F3 /* SentryTimeToDisplayTracker.h in Headers */, - 8E8C57A625EEFC43001CEEFA /* SentrySampling.h in Headers */, - 8E8C57A625EEFC43001CEEFA /* SentrySampling.h in Headers */, 7B634599280EB9D100CFA05A /* SentryUIEventTrackingIntegration.h in Headers */, 63FE716D20DA4C1100CDBAE8 /* SentryCrashSysCtl.h in Headers */, 639889BB1EDED18400EA7442 /* SentrySwizzle.h in Headers */, @@ -4237,7 +4237,6 @@ 63FE713D20DA4C1100CDBAE8 /* SentryAsyncSafeLog.h in Headers */, D8A3649D2C91AA3300AC569B /* SentryReplayApi.h in Headers */, 15E0A8E1240C41CE00F044E3 /* SentryEnvelope.h in Headers */, - 92CC6E332CD13E6100AE7861 /* SentrySessionReplayIntegration-Hybrid.h in Headers */, 630435FE1EBCA9D900C4D3FA /* SentryNSURLRequest.h in Headers */, 7BC852392458830A005A70F0 /* SentryEnvelopeItemType.h in Headers */, 63AA769D1EB9C57A00D153DE /* SentryError.h in Headers */, @@ -5340,6 +5339,7 @@ GCC_WARN_SHADOW = YES; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)"; + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = "-DCARTHAGE_$(CARTHAGE)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -5377,6 +5377,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = "-DCARTHAGE_$(CARTHAGE)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; @@ -5404,7 +5405,6 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_PRIVATE_FILE = ""; OTHER_SWIFT_FLAGS = "-DSENTRY_USE_UIKIT"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.Sentry.tests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -5440,7 +5440,6 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_PRIVATE_FILE = ""; OTHER_SWIFT_FLAGS = "-DSENTRY_USE_UIKIT"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.Sentry.tests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -5536,6 +5535,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = "-DCARTHAGE_$(CARTHAGE)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -5564,7 +5564,6 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_PRIVATE_FILE = ""; OTHER_SWIFT_FLAGS = "-DSENTRY_USE_UIKIT"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.Sentry.tests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -5662,6 +5661,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = "-DCARTHAGE_$(CARTHAGE)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -5690,7 +5690,6 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_PRIVATE_FILE = ""; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.Sentry.tests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -5737,7 +5736,6 @@ ); MARKETING_VERSION = 1.0; MODULEMAP_FILE = ""; - MODULEMAP_PRIVATE_FILE = ""; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "-DCARTHAGE"; @@ -6140,6 +6138,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = "-DCARTHAGE_$(CARTHAGE)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; @@ -6167,7 +6166,6 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_PRIVATE_FILE = ""; OTHER_SWIFT_FLAGS = "-DSENTRY_USE_UIKIT"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.Sentry.tests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -6215,7 +6213,6 @@ ); MARKETING_VERSION = 1.0; MODULEMAP_FILE = ""; - MODULEMAP_PRIVATE_FILE = ""; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; @@ -6369,6 +6366,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MODULEMAP_PRIVATE_FILE = ""; OTHER_CFLAGS = "-DCARTHAGE_$(CARTHAGE)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -6397,7 +6395,6 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_PRIVATE_FILE = ""; OTHER_SWIFT_FLAGS = "-DSENTRY_USE_UIKIT"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.Sentry.tests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -6446,7 +6443,6 @@ ); MARKETING_VERSION = 1.0; MODULEMAP_FILE = ""; - MODULEMAP_PRIVATE_FILE = ""; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "-DCARTHAGE"; @@ -6495,7 +6491,6 @@ ); MARKETING_VERSION = 1.0; MODULEMAP_FILE = ""; - MODULEMAP_PRIVATE_FILE = ""; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; @@ -6542,7 +6537,6 @@ ); MARKETING_VERSION = 1.0; MODULEMAP_FILE = ""; - MODULEMAP_PRIVATE_FILE = ""; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; @@ -6589,7 +6583,6 @@ ); MARKETING_VERSION = 1.0; MODULEMAP_FILE = ""; - MODULEMAP_PRIVATE_FILE = ""; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; diff --git a/Sources/Resources/Sentry.modulemap b/Sources/Resources/Sentry.modulemap index 5434aa9350..9b217fc516 100644 --- a/Sources/Resources/Sentry.modulemap +++ b/Sources/Resources/Sentry.modulemap @@ -3,4 +3,32 @@ framework module Sentry { export * module * { export * } + + explicit module _Hybrid { + // Headers that are not part of the public API and should only be used by hybrid SDKs + header "PrivateSentrySDKOnly.h" + header "PrivatesHeader.h" + header "SentryAppStartMeasurement.h" + header "SentryBinaryImageCache.h" + header "SentryBreadcrumb+Private.h" + header "SentryDebugImageProvider+HybridSDKs.h" + header "SentryDependencyContainer.h" + header "SentryEnvelope.h" + header "SentryEnvelopeItemType.h" + header "SentryFormatter.h" + header "SentryFramesTracker.h" + header "SentryOptions+HybridSDKs.h" + header "SentryScreenFrames.h" + header "SentrySwizzle.h" + header "SentryUser+Private.h" + + header "SentryBaseIntegration.h" + header "SentrySessionReplayIntegration.h" + header "SentrySessionReplayIntegration-Hybrid.h" + + header "SentrySdkInfo.h" + header "SentryInternalSerializable.h" + + export * + } } diff --git a/Sources/Sentry/include/HybridPublic/PrivateSentrySDKOnly.h b/Sources/Sentry/include/HybridPublic/PrivateSentrySDKOnly.h index 2af2bbb1b3..536d81bd1a 100644 --- a/Sources/Sentry/include/HybridPublic/PrivateSentrySDKOnly.h +++ b/Sources/Sentry/include/HybridPublic/PrivateSentrySDKOnly.h @@ -1,5 +1,14 @@ -#import "PrivatesHeader.h" -#import "SentryScreenFrames.h" +#if __has_include() +# import +#else +# import "PrivatesHeader.h" +#endif + +#if __has_include() +# import +#else +# import "SentryScreenFrames.h" +#endif @class SentryDebugMeta; @class SentryScreenFrames; diff --git a/Sources/Sentry/include/HybridPublic/SentryAppStartMeasurement.h b/Sources/Sentry/include/HybridPublic/SentryAppStartMeasurement.h index 5484f064fb..70ae3aa457 100644 --- a/Sources/Sentry/include/HybridPublic/SentryAppStartMeasurement.h +++ b/Sources/Sentry/include/HybridPublic/SentryAppStartMeasurement.h @@ -1,4 +1,8 @@ -#import "PrivatesHeader.h" +#if __has_include() +# import +#else +# import "PrivatesHeader.h" +#endif #if SENTRY_UIKIT_AVAILABLE diff --git a/Sources/Sentry/include/HybridPublic/SentryBreadcrumb+Private.h b/Sources/Sentry/include/HybridPublic/SentryBreadcrumb+Private.h index 21d2e10e78..2430d433eb 100644 --- a/Sources/Sentry/include/HybridPublic/SentryBreadcrumb+Private.h +++ b/Sources/Sentry/include/HybridPublic/SentryBreadcrumb+Private.h @@ -1,4 +1,8 @@ -#import "SentryBreadcrumb.h" +#if __has_include() +# import +#else +# import "SentryBreadcrumb.h" +#endif @interface SentryBreadcrumb () diff --git a/Sources/Sentry/include/HybridPublic/SentryDebugImageProvider+HybridSDKs.h b/Sources/Sentry/include/HybridPublic/SentryDebugImageProvider+HybridSDKs.h index b2b0296312..d7ba990dc6 100644 --- a/Sources/Sentry/include/HybridPublic/SentryDebugImageProvider+HybridSDKs.h +++ b/Sources/Sentry/include/HybridPublic/SentryDebugImageProvider+HybridSDKs.h @@ -1,4 +1,8 @@ -#import "SentryDebugImageProvider.h" +#if __has_include() +# import +#else +# import "SentryDebugImageProvider.h" +#endif @class SentryDebugMeta; @class SentryThread; diff --git a/Sources/Sentry/include/HybridPublic/SentryDependencyContainer.h b/Sources/Sentry/include/HybridPublic/SentryDependencyContainer.h index a0b6791773..433cace15e 100644 --- a/Sources/Sentry/include/HybridPublic/SentryDependencyContainer.h +++ b/Sources/Sentry/include/HybridPublic/SentryDependencyContainer.h @@ -1,4 +1,8 @@ -#import "SentryDefines.h" +#if __has_include() +# import +#else +# import "SentryDefines.h" +#endif @protocol SentryANRTracker; @class SentryAppStateManager; diff --git a/Sources/Sentry/include/HybridPublic/SentryEnvelope.h b/Sources/Sentry/include/HybridPublic/SentryEnvelope.h index 76350d6b47..b1be5d43da 100644 --- a/Sources/Sentry/include/HybridPublic/SentryEnvelope.h +++ b/Sources/Sentry/include/HybridPublic/SentryEnvelope.h @@ -1,9 +1,18 @@ -#import "PrivatesHeader.h" +#if __has_include() +# import +#else +# import "PrivatesHeader.h" +#endif #if COCOAPODS @class SentrySdkInfo; #else -# import "SentrySdkInfo.h" + +# if __has_include() +# import +# else +# import "SentrySdkInfo.h" +# endif #endif diff --git a/Sources/Sentry/include/HybridPublic/SentryFramesTracker.h b/Sources/Sentry/include/HybridPublic/SentryFramesTracker.h index 7cf02e5dca..54468a529b 100644 --- a/Sources/Sentry/include/HybridPublic/SentryFramesTracker.h +++ b/Sources/Sentry/include/HybridPublic/SentryFramesTracker.h @@ -1,8 +1,16 @@ -#import "SentryDefines.h" +#if __has_include() +# import +#else +# import "SentryDefines.h" +#endif #if SENTRY_HAS_UIKIT -# import "SentryProfilingConditionals.h" +# if __has_include() +# import +# else +# import "SentryProfilingConditionals.h" +# endif @class SentryDisplayLinkWrapper; @protocol SentryCurrentDateProvider; diff --git a/Sources/Sentry/include/HybridPublic/SentryScreenFrames.h b/Sources/Sentry/include/HybridPublic/SentryScreenFrames.h index 9a4bc68d09..d7c0351a4d 100644 --- a/Sources/Sentry/include/HybridPublic/SentryScreenFrames.h +++ b/Sources/Sentry/include/HybridPublic/SentryScreenFrames.h @@ -1,4 +1,8 @@ -#import "PrivatesHeader.h" +#if __has_include() +# import +#else +# import "PrivatesHeader.h" +#endif #if SENTRY_UIKIT_AVAILABLE diff --git a/Sources/Sentry/include/HybridPublic/SentrySessionReplayIntegration-Hybrid.h b/Sources/Sentry/include/HybridPublic/SentrySessionReplayIntegration-Hybrid.h index 818e60f368..5fb09f69e5 100644 --- a/Sources/Sentry/include/HybridPublic/SentrySessionReplayIntegration-Hybrid.h +++ b/Sources/Sentry/include/HybridPublic/SentrySessionReplayIntegration-Hybrid.h @@ -1,25 +1,32 @@ #import -#import + +#if __has_include() +# import +#else +# import "SentryDefines.h" +#endif + +#if __has_include() +# import +#else +# import "SentrySessionReplayIntegration.h" +#endif NS_ASSUME_NONNULL_BEGIN -#if SENTRY_UIKIT_AVAILABLE +#if SENTRY_TARGET_REPLAY_SUPPORTED @class SentryReplayOptions; @protocol SentryViewScreenshotProvider; @protocol SentryReplayBreadcrumbConverter; @protocol SentryRRWebEvent; -@interface SentrySessionReplayIntegration : NSObject +@interface SentrySessionReplayIntegration () - (void)startWithOptions:(SentryReplayOptions *)replayOptions screenshotProvider:(id)screenshotProvider breadcrumbConverter:(id)breadcrumbConverter fullSession:(BOOL)shouldReplayFullSession; -@end - -@interface SentrySessionReplayIntegration () - + (id)createBreadcrumbwithTimestamp:(NSDate *)timestamp category:(NSString *)category message:(nullable NSString *)message diff --git a/Sources/Sentry/include/HybridPublic/SentryUser+Private.h b/Sources/Sentry/include/HybridPublic/SentryUser+Private.h index 904cb7eac5..e0eb2c43dd 100644 --- a/Sources/Sentry/include/HybridPublic/SentryUser+Private.h +++ b/Sources/Sentry/include/HybridPublic/SentryUser+Private.h @@ -1,4 +1,8 @@ -#import "SentryUser.h" +#if __has_include() +# import +#else +# import "SentryUser.h" +#endif @interface SentryUser () diff --git a/Sources/Sentry/include/SentryInternalSerializable.h b/Sources/Sentry/include/SentryInternalSerializable.h index bf35787d67..be78e12ae4 100644 --- a/Sources/Sentry/include/SentryInternalSerializable.h +++ b/Sources/Sentry/include/SentryInternalSerializable.h @@ -1,4 +1,9 @@ -#import "SentryDefines.h" +#if __has_include() +# import +#else +# import "SentryDefines.h" +#endif + #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Sentry/include/SentrySdkInfo.h b/Sources/Sentry/include/SentrySdkInfo.h index 4e51e77b13..6060d9025d 100644 --- a/Sources/Sentry/include/SentrySdkInfo.h +++ b/Sources/Sentry/include/SentrySdkInfo.h @@ -1,5 +1,15 @@ -#import "SentryDefines.h" -#import "SentryInternalSerializable.h" +#if __has_include() +# import +#else +# import "SentryDefines.h" +#endif + +#if __has_include() +# import +#else +# import "SentryInternalSerializable.h" +#endif + #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Sentry/include/SentrySessionReplayIntegration.h b/Sources/Sentry/include/SentrySessionReplayIntegration.h index 1520e6d330..8ebff68b38 100644 --- a/Sources/Sentry/include/SentrySessionReplayIntegration.h +++ b/Sources/Sentry/include/SentrySessionReplayIntegration.h @@ -1,5 +1,15 @@ -#import "SentryBaseIntegration.h" -#import "SentryDefines.h" +#if __has_include() +# import +#else +# import "SentryBaseIntegration.h" +#endif + +#if __has_include() +# import +#else +# import "SentryDefines.h" +#endif + #import NS_ASSUME_NONNULL_BEGIN diff --git a/Tests/SentryTests/Integrations/SessionReplay/SentrySessionReplayTests.swift b/Tests/SentryTests/Integrations/SessionReplay/SentrySessionReplayTests.swift index 5a7a4833ba..ed8226cd6c 100644 --- a/Tests/SentryTests/Integrations/SessionReplay/SentrySessionReplayTests.swift +++ b/Tests/SentryTests/Integrations/SessionReplay/SentrySessionReplayTests.swift @@ -353,7 +353,7 @@ class SentrySessionReplayTests: XCTestCase { let event = Event(error: NSError(domain: "Some error", code: 1)) sut.captureReplayFor(event: event) - let breadCrumbRREvents = fixture.lastReplayRecording?.events.compactMap( { $0 as? SentryRRWebBreadcrumbEvent }) ?? [] + let breadCrumbRREvents = fixture.lastReplayRecording?.events.compactMap({ $0 as? SentryRRWebBreadcrumbEvent }) ?? [] XCTAssertEqual(breadCrumbRREvents.count, 3) XCTAssertEqual((breadCrumbRREvents[0].data?["payload"] as? [String: Any])?["message"] as? String, "Some Screen")