Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: define separate module names for UIKitless configurations #4140

Merged
merged 27 commits into from
Jul 9, 2024
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
6c1b08f
fix: define separate module names for UIKitless configurations
armcknight Jul 1, 2024
5d77c11
fix test targets
armcknight Jul 2, 2024
8f510f3
changelog
armcknight Jul 2, 2024
d509ee6
changelog
armcknight Jul 2, 2024
e58a5f5
more changes per UIKit build
armcknight Jul 2, 2024
4cd970d
rename _SentryPrivate to _SentryWithoutUIKitPrivate in module.modulemap
armcknight Jul 2, 2024
9128272
patch provided from dropbox that fixes the remaining issues
armcknight Jul 2, 2024
e133b18
rename remaining instances of Debug_without_UIKit to DebugWithoutUIKi…
armcknight Jul 2, 2024
d63a893
move GCC_PREPROCESSOR_DEFINITIONS into SDK.xcconfig
armcknight Jul 2, 2024
1b2a7ca
conditionally link either Sentry or SentryWithoutUIKit into SentrySwi…
armcknight Jul 2, 2024
623274d
fix UIKit linkage CI workflow
armcknight Jul 2, 2024
0bcec49
put OTHER_LDFLAGS only in SwiftUI xcconfig
armcknight Jul 2, 2024
c2da7e3
fix linkage test args
armcknight Jul 2, 2024
0cb91fb
make uikit linkage more strict, because now we have a match for UIKit…
armcknight Jul 2, 2024
392e62a
actually, libswift dylib is also not allowed
armcknight Jul 2, 2024
f93f597
fix accidental reintroduction of implicit UIKit linkage
armcknight Jul 2, 2024
d6cb350
typo
armcknight Jul 2, 2024
15aeae1
try using an include test to fix a downstream issue with my bazel build
armcknight Jul 2, 2024
72f2ae5
fix xcframework script that fails to find the artifacts correctly aft…
armcknight Jul 3, 2024
d15d002
also use the check for available header instead of user defined setti…
armcknight Jul 8, 2024
526adf5
fixup! also use the check for available header instead of user define…
armcknight Jul 8, 2024
ea61def
fixup! fixup! also use the check for available header instead of user…
armcknight Jul 8, 2024
8728da2
some fixes for build-xcframework.sh
armcknight Jul 9, 2024
f772a63
Update build-xcframework.sh
brustolin Jul 9, 2024
a6f125f
Update build-xcframework.sh
brustolin Jul 9, 2024
a25a487
Merge branch 'main' into armcknight/fix/module-names
brustolin Jul 9, 2024
9ad35df
use better test for header presence
armcknight Jul 9, 2024
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
32 changes: 16 additions & 16 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -213,42 +213,42 @@ jobs:
- run: swift build
shell: sh

check-uikit-linkage-debug-UIKitless:
name: Check no UIKit linkage (Debug_without_UIKit)
check-debug-without-UIKit:
name: Check no UIKit linkage (DebugWithoutUIKit)
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Build for Debug
run: ./scripts/xcode-test.sh "iOS" "latest" $GITHUB_REF_NAME ci build "iPhone 14" Debug_without_UIKit uikit-check-build
- name: Ensure no UIKit
run: ./scripts/check-uikit-linkage.sh Debug_without_UIKit uikit-check-build unlinked
run: ./scripts/xcode-test.sh "iOS" "latest" $GITHUB_REF_NAME ci build "iPhone 14" DebugWithoutUIKit uikit-check-build
- name: Ensure UIKit is not linked
run: ./scripts/check-uikit-linkage.sh DebugWithoutUIKit uikit-check-build unlinked SentryWithoutUIKit

check-uikit-linkage-release-UIKitless:
name: Check no UIKit linkage (Release_without_UIKit)
check-release-without-UIKit:
name: Check no UIKit linkage (ReleaseWithoutUIKit)
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Build for Release
run: ./scripts/xcode-test.sh "iOS" "latest" $GITHUB_REF_NAME ci build "iPhone 14" Release_without_UIKit uikit-check-build
- name: Ensure no UIKit
run: ./scripts/check-uikit-linkage.sh Release_without_UIKit uikit-check-build unlinked
run: ./scripts/xcode-test.sh "iOS" "latest" $GITHUB_REF_NAME ci build "iPhone 14" ReleaseWithoutUIKit uikit-check-build
- name: Ensure UIKit is not linked
run: ./scripts/check-uikit-linkage.sh ReleaseWithoutUIKit uikit-check-build unlinked SentryWithoutUIKit

check-uikit-linkage-debug:
check-debug-with-UIKit:
name: Check UIKit linkage (Debug)
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Build for Debug
run: ./scripts/xcode-test.sh "iOS" "latest" $GITHUB_REF_NAME ci build "iPhone 14" Debug uikit-check-build
- name: Ensure no UIKit
run: ./scripts/check-uikit-linkage.sh Debug uikit-check-build linked
- name: Ensure UIKit is linked
run: ./scripts/check-uikit-linkage.sh Debug uikit-check-build linked Sentry

check-uikit-linkage-release:
check-release-with-UIKit:
name: Check UIKit linkage (Release)
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Build for Release
run: ./scripts/xcode-test.sh "iOS" "latest" $GITHUB_REF_NAME ci build "iPhone 14" Release uikit-check-build
- name: Ensure no UIKit
run: ./scripts/check-uikit-linkage.sh Release uikit-check-build linked
- name: Ensure UIKit is linked
run: ./scripts/check-uikit-linkage.sh Release uikit-check-build linked Sentry
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## Unreleased

### Fixes

- UIKitless configurations now produce a module with a different name (#4140)

## 8.30.0

### Features
Expand Down
165 changes: 52 additions & 113 deletions Sentry.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

14 changes: 11 additions & 3 deletions Sources/Configuration/SDK.xcconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "DeploymentTargets.xcconfig"
#include "Versions.xcconfig"

SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator watchos watchsimulator appletvos appletvsimulator xros xrsimulator
TARGETED_DEVICE_FAMILY = 1,2,3,4,7
Expand Down Expand Up @@ -34,9 +34,17 @@ CLANG_CXX_LIBRARY = libc++
HEADER_SEARCH_PATHS = $(SRCROOT)/Sources/Sentry/include/**

SWIFT_ACTIVE_COMPILATION_CONDITIONS_Debug = DEBUG
SWIFT_ACTIVE_COMPILATION_CONDITIONS_Debug_without_UIKit = DEBUG SENTRY_NO_UIKIT
SWIFT_ACTIVE_COMPILATION_CONDITIONS_DebugWithoutUIKit = DEBUG SENTRY_NO_UIKIT
SWIFT_ACTIVE_COMPILATION_CONDITIONS_Test = TEST
SWIFT_ACTIVE_COMPILATION_CONDITIONS_TestCI = TESTCI
SWIFT_ACTIVE_COMPILATION_CONDITIONS_Release =
SWIFT_ACTIVE_COMPILATION_CONDITIONS_Release_without_UIKit = SENTRY_NO_UIKIT
SWIFT_ACTIVE_COMPILATION_CONDITIONS_ReleaseWithoutUIKit = SENTRY_NO_UIKIT
SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(SWIFT_ACTIVE_COMPILATION_CONDITIONS_$(CONFIGURATION))

GCC_PREPROCESSOR_DEFINITIONS_Debug = DEBUG=1
GCC_PREPROCESSOR_DEFINITIONS_DebugWithoutUIKit = DEBUG=1 SENTRY_NO_UIKIT=1
GCC_PREPROCESSOR_DEFINITIONS_Test = DEBUG=1 TEST=1
GCC_PREPROCESSOR_DEFINITIONS_TestCI = DEBUG=1 TEST=1 TESTCI=1
GCC_PREPROCESSOR_DEFINITIONS_Release = RELEASE=1
GCC_PREPROCESSOR_DEFINITIONS_ReleaseWithoutUIKit = RELEASE=1 SENTRY_NO_UIKIT=1
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_$(CONFIGURATION))
20 changes: 15 additions & 5 deletions Sources/Configuration/Sentry.xcconfig
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
PRODUCT_NAME = Sentry
INFOPLIST_FILE = Sources/Resources/Info.plist
PRODUCT_BUNDLE_IDENTIFIER = io.sentry.Sentry
#include "Versions.xcconfig"

CURRENT_PROJECT_VERSION = 8.30.0
INFOPLIST_FILE = Sources/Resources/Info.plist

MODULEMAP_FILE = $(SRCROOT)/Sources/Resources/Sentry.modulemap
SENTRY_MODULE_NAME = Sentry
SENTRY_WITHOUT_UIKIT_MODULE_NAME = SentryWithoutUIKit

// This config is required so the test code can access the SentryPrivate module. Removing this setting
// leads to an error: no such module '_SentryPrivate' when including the XCFramework with Carthage
HEADER_SEARCH_PATHS = $(SRCROOT)/Sources/Sentry/include/**

PRODUCT_MODULE_NAME_Debug = $(SENTRY_MODULE_NAME)
PRODUCT_MODULE_NAME_DebugWithoutUIKit = $(SENTRY_WITHOUT_UIKIT_MODULE_NAME)
PRODUCT_MODULE_NAME_Test = $(SENTRY_MODULE_NAME)
PRODUCT_MODULE_NAME_TestCI = $(SENTRY_MODULE_NAME)
PRODUCT_MODULE_NAME_Release = $(SENTRY_MODULE_NAME)
PRODUCT_MODULE_NAME_ReleaseWithoutUIKit = $(SENTRY_WITHOUT_UIKIT_MODULE_NAME)
PRODUCT_MODULE_NAME = $(PRODUCT_MODULE_NAME_$(CONFIGURATION))
PRODUCT_NAME = $(PRODUCT_MODULE_NAME)
PRODUCT_BUNDLE_IDENTIFIER = io.sentry.$(PRODUCT_MODULE_NAME)
MODULEMAP_FILE = $(SRCROOT)/Sources/Resources/$(PRODUCT_MODULE_NAME_$(CONFIGURATION)).modulemap
8 changes: 8 additions & 0 deletions Sources/Configuration/SentrySwiftUI.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,11 @@ IPHONEOS_DEPLOYMENT_TARGET = 13.0
WATCHOS_DEPLOYMENT_TARGET = 6.0
TVOS_DEPLOYMENT_TARGET = 13.0
MACH_O_TYPE = mh_dylib

OTHER_LDFLAGS_DebugWithoutUIKit = -framework SentryWithoutUIKit
OTHER_LDFLAGS_ReleaseWithoutUIKit = -framework SentryWithoutUIKit
OTHER_LDFLAGS_Debug = -framework Sentry
OTHER_LDFLAGS_Test = -framework Sentry
OTHER_LDFLAGS_TestCI = -framework Sentry
OTHER_LDFLAGS_Release = -framework Sentry
OTHER_LDFLAGS = $(OTHER_LDFLAGS_$(CONFIGURATION))
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@ IPHONEOS_DEPLOYMENT_TARGET = 11.0
WATCHOS_DEPLOYMENT_TARGET = 4.0
TVOS_DEPLOYMENT_TARGET = 11.0
XROS_DEPLOYMENT_TARGET = 1.0

CURRENT_PROJECT_VERSION = 8.30.0
6 changes: 6 additions & 0 deletions Sources/Resources/SentryWithoutUIKit.modulemap
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
framework module SentryWithoutUIKit {
umbrella header "SentryWithoutUIKit.h"

export *
module * { export * }
}
81 changes: 42 additions & 39 deletions Sources/Sentry/Public/Sentry.h
Original file line number Diff line number Diff line change
@@ -1,46 +1,49 @@
#import <Foundation/Foundation.h>
#if !__has_include(<SentryWithoutUIKit/Sentry.h>)
# import <Foundation/Foundation.h>
armcknight marked this conversation as resolved.
Show resolved Hide resolved

//! Project version number for Sentry.
FOUNDATION_EXPORT double SentryVersionNumber;

//! Project version string for Sentry.
FOUNDATION_EXPORT const unsigned char SentryVersionString[];

#import <Sentry/SentryAttachment.h>
#import <Sentry/SentryBreadcrumb.h>
#import <Sentry/SentryClient.h>
#import <Sentry/SentryCrashExceptionApplication.h>
#import <Sentry/SentryDebugImageProvider.h>
#import <Sentry/SentryDebugMeta.h>
#import <Sentry/SentryDefines.h>
#import <Sentry/SentryDsn.h>
#import <Sentry/SentryEnvelopeItemHeader.h>
#import <Sentry/SentryError.h>
#import <Sentry/SentryEvent.h>
#import <Sentry/SentryException.h>
#import <Sentry/SentryFrame.h>
#import <Sentry/SentryGeo.h>
#import <Sentry/SentryHttpStatusCodeRange.h>
#import <Sentry/SentryHub.h>
#import <Sentry/SentryMeasurementUnit.h>
#import <Sentry/SentryMechanism.h>
#import <Sentry/SentryMechanismMeta.h>
#import <Sentry/SentryMessage.h>
#import <Sentry/SentryNSError.h>
#import <Sentry/SentryOptions.h>
#import <Sentry/SentryRequest.h>
#import <Sentry/SentrySDK.h>
#import <Sentry/SentrySampleDecision.h>
#import <Sentry/SentrySamplingContext.h>
#import <Sentry/SentryScope.h>
#import <Sentry/SentrySerializable.h>
#import <Sentry/SentrySpanContext.h>
#import <Sentry/SentrySpanId.h>
#import <Sentry/SentrySpanProtocol.h>
#import <Sentry/SentrySpanStatus.h>
#import <Sentry/SentryStacktrace.h>
#import <Sentry/SentryThread.h>
#import <Sentry/SentryTraceHeader.h>
#import <Sentry/SentryTransactionContext.h>
#import <Sentry/SentryUser.h>
#import <Sentry/SentryUserFeedback.h>
# import <Sentry/SentryAttachment.h>
# import <Sentry/SentryBreadcrumb.h>
# import <Sentry/SentryClient.h>
# import <Sentry/SentryCrashExceptionApplication.h>
# import <Sentry/SentryDebugImageProvider.h>
# import <Sentry/SentryDebugMeta.h>
# import <Sentry/SentryDefines.h>
# import <Sentry/SentryDsn.h>
# import <Sentry/SentryEnvelopeItemHeader.h>
# import <Sentry/SentryError.h>
# import <Sentry/SentryEvent.h>
# import <Sentry/SentryException.h>
# import <Sentry/SentryFrame.h>
# import <Sentry/SentryGeo.h>
# import <Sentry/SentryHttpStatusCodeRange.h>
# import <Sentry/SentryHub.h>
# import <Sentry/SentryMeasurementUnit.h>
# import <Sentry/SentryMechanism.h>
# import <Sentry/SentryMechanismMeta.h>
# import <Sentry/SentryMessage.h>
# import <Sentry/SentryNSError.h>
# import <Sentry/SentryOptions.h>
# import <Sentry/SentryRequest.h>
# import <Sentry/SentrySDK.h>
# import <Sentry/SentrySampleDecision.h>
# import <Sentry/SentrySamplingContext.h>
# import <Sentry/SentryScope.h>
# import <Sentry/SentrySerializable.h>
# import <Sentry/SentrySpanContext.h>
# import <Sentry/SentrySpanId.h>
# import <Sentry/SentrySpanProtocol.h>
# import <Sentry/SentrySpanStatus.h>
# import <Sentry/SentryStacktrace.h>
# import <Sentry/SentryThread.h>
# import <Sentry/SentryTraceHeader.h>
# import <Sentry/SentryTransactionContext.h>
# import <Sentry/SentryUser.h>
# import <Sentry/SentryUserFeedback.h>
# import <Sentry/SentryWithoutUIKit.h>
#endif // __has_include(<SentryWithoutUIKit/Sentry.h>)
12 changes: 6 additions & 6 deletions Sources/Sentry/Public/SentryOptions.h
Original file line number Diff line number Diff line change
Expand Up @@ -252,15 +252,15 @@ NS_SWIFT_NAME(Options)
#if SENTRY_UIKIT_AVAILABLE
/**
* When enabled, the SDK tracks performance for UIViewController subclasses.
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
* @note The default is @c YES .
*/
@property (nonatomic, assign) BOOL enableUIViewControllerTracing;

/**
* Automatically attaches a screenshot when capturing an error or exception.
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
* @note Default value is @c NO .
*/
Expand All @@ -270,7 +270,7 @@ NS_SWIFT_NAME(Options)
* @warning This is an experimental feature and may still have bugs.
* @brief Automatically attaches a textual representation of the view hierarchy when capturing an
* error event.
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
* @note Default value is @c NO .
*/
Expand All @@ -279,7 +279,7 @@ NS_SWIFT_NAME(Options)
/**
* When enabled, the SDK creates transactions for UI events like buttons clicks, switch toggles,
* and other ui elements that uses UIControl @c sendAction:to:forEvent:
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
* @note Default value is @c YES .
*/
Expand All @@ -288,7 +288,7 @@ NS_SWIFT_NAME(Options)
/**
* How long an idle transaction waits for new children after all its child spans finished. Only UI
* event transactions are idle transactions.
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
* @note The default is 3 seconds.
*/
Expand All @@ -302,7 +302,7 @@ NS_SWIFT_NAME(Options)
* @note You can filter for different app start types in Discover with
* @c app_start_type:cold.prewarmed ,
* @c app_start_type:warm.prewarmed , @c app_start_type:cold , and @c app_start_type:warm .
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
* @note Default value is @c NO .
*/
Expand Down
49 changes: 49 additions & 0 deletions Sources/Sentry/Public/SentryWithoutUIKit.h
brustolin marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#if __has_include(<SentryWithoutUIKit/Sentry.h>)
# import <Foundation/Foundation.h>

//! Project version number for Sentry.
FOUNDATION_EXPORT double SentryVersionNumber;

//! Project version string for Sentry.
FOUNDATION_EXPORT const unsigned char SentryVersionString[];

# import <SentryWithoutUIKit/Sentry.h>
# import <SentryWithoutUIKit/SentryAttachment.h>
# import <SentryWithoutUIKit/SentryBreadcrumb.h>
# import <SentryWithoutUIKit/SentryClient.h>
# import <SentryWithoutUIKit/SentryCrashExceptionApplication.h>
# import <SentryWithoutUIKit/SentryDebugImageProvider.h>
# import <SentryWithoutUIKit/SentryDebugMeta.h>
# import <SentryWithoutUIKit/SentryDefines.h>
# import <SentryWithoutUIKit/SentryDsn.h>
# import <SentryWithoutUIKit/SentryEnvelopeItemHeader.h>
# import <SentryWithoutUIKit/SentryError.h>
# import <SentryWithoutUIKit/SentryEvent.h>
# import <SentryWithoutUIKit/SentryException.h>
# import <SentryWithoutUIKit/SentryFrame.h>
# import <SentryWithoutUIKit/SentryGeo.h>
# import <SentryWithoutUIKit/SentryHttpStatusCodeRange.h>
# import <SentryWithoutUIKit/SentryHub.h>
# import <SentryWithoutUIKit/SentryMeasurementUnit.h>
# import <SentryWithoutUIKit/SentryMechanism.h>
# import <SentryWithoutUIKit/SentryMechanismMeta.h>
# import <SentryWithoutUIKit/SentryMessage.h>
# import <SentryWithoutUIKit/SentryNSError.h>
# import <SentryWithoutUIKit/SentryOptions.h>
# import <SentryWithoutUIKit/SentryRequest.h>
# import <SentryWithoutUIKit/SentrySDK.h>
# import <SentryWithoutUIKit/SentrySampleDecision.h>
# import <SentryWithoutUIKit/SentrySamplingContext.h>
# import <SentryWithoutUIKit/SentryScope.h>
# import <SentryWithoutUIKit/SentrySerializable.h>
# import <SentryWithoutUIKit/SentrySpanContext.h>
# import <SentryWithoutUIKit/SentrySpanId.h>
# import <SentryWithoutUIKit/SentrySpanProtocol.h>
# import <SentryWithoutUIKit/SentrySpanStatus.h>
# import <SentryWithoutUIKit/SentryStacktrace.h>
# import <SentryWithoutUIKit/SentryThread.h>
# import <SentryWithoutUIKit/SentryTraceHeader.h>
# import <SentryWithoutUIKit/SentryTransactionContext.h>
# import <SentryWithoutUIKit/SentryUser.h>
# import <SentryWithoutUIKit/SentryUserFeedback.h>
#endif // __has_include(<SentryWithoutUIKit/Sentry.h>)
10 changes: 5 additions & 5 deletions Sources/Sentry/include/HybridPublic/PrivateSentrySDKOnly.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,31 +132,31 @@ typedef void (^SentryOnAppStartMeasurementAvailable)(
#if SENTRY_UIKIT_AVAILABLE
/**
* Allows hybrid SDKs to enable frame tracking measurements despite other options.
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
*/
@property (class, nonatomic, assign) BOOL framesTrackingMeasurementHybridSDKMode;

/**
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
*/
@property (class, nonatomic, assign, readonly) BOOL isFramesTrackingRunning;

/**
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
*/
@property (class, nonatomic, assign, readonly) SentryScreenFrames *currentScreenFrames;

/**
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
*/
+ (NSArray<NSData *> *)captureScreenshots;

/**
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
*/
+ (NSData *)captureViewHierarchy;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SENTRY_NO_INIT
@end

/**
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
*/
@interface SentryAppStartMeasurement : NSObject
Expand Down
2 changes: 1 addition & 1 deletion Sources/Sentry/include/HybridPublic/SentryScreenFrames.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ typedef NSArray<NSDictionary<NSString *, NSNumber *> *> SentryFrameInfoTimeSerie
# endif // SENTRY_TARGET_PROFILING_SUPPORTED

/**
* @warning This feature is not available in @c Debug_without_UIKit and @c Release_without_UIKit
* @warning This feature is not available in @c DebugWithoutUIKit and @c ReleaseWithoutUIKit
* configurations even when targeting iOS or tvOS platforms.
*/
@interface SentryScreenFrames : NSObject
Expand Down
Loading
Loading