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

chore(deps): update Cocoa SDK to v8.3.2 #2248

Merged
merged 2 commits into from
Mar 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@

### Dependencies

- Bump Cocoa SDK from v8.3.0 to v8.3.1 ([#2237](https://github.com/getsentry/sentry-dotnet/pull/2237))
- [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#831)
- [diff](https://github.com/getsentry/sentry-cocoa/compare/8.3.0...8.3.1)
- Bump Cocoa SDK from v8.3.0 to v8.3.2 ([#2237](https://github.com/getsentry/sentry-dotnet/pull/2237), [#2248](https://github.com/getsentry/sentry-dotnet/pull/2248))
- [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#832)
- [diff](https://github.com/getsentry/sentry-cocoa/compare/8.3.0...8.3.2)

- Bump CLI from v2.14.4 to v2.15.2 ([#2238](https://github.com/getsentry/sentry-dotnet/pull/2238), [#2244](https://github.com/getsentry/sentry-dotnet/pull/2244))
- [changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#2152)
Expand Down
2 changes: 1 addition & 1 deletion modules/sentry-cocoa
Submodule sentry-cocoa updated 52 files
+8 −0 .github/workflows/build.yml
+15 −1 CHANGELOG.md
+1 −1 Gemfile.lock
+1 −1 Makefile
+1 −1 README.md
+11 −3 Samples/iOS-Swift/iOS-Swift/Base.lproj/Main.storyboard
+17 −0 Samples/iOS-Swift/iOS-Swift/Tools/RandomErrors.swift
+24 −3 Samples/iOS-Swift/iOS-Swift/ViewController.swift
+2 −2 Sentry.podspec
+5 −19 Sentry.xcodeproj/project.pbxproj
+1 −1 SentryPrivate.podspec
+2 −2 SentrySwiftUI.podspec
+1 −1 SentryTestUtils/TestSentryDispatchQueueWrapper.swift
+1 −1 Sources/Configuration/Sentry.xcconfig
+1 −1 Sources/Configuration/SentryPrivate.xcconfig
+2 −4 Sources/Sentry/Public/SentryClient.h
+2 −7 Sources/Sentry/Public/SentryHub.h
+7 −1 Sources/Sentry/SentryANRTracker.m
+1 −0 Sources/Sentry/SentryHub.m
+1 −1 Sources/Sentry/SentryMeta.m
+11 −1 Sources/Sentry/SentryThreadInspector.m
+1 −0 Sources/Sentry/SentryTraceContext.m
+65 −77 Sources/Sentry/SentryUser.m
+2 −2 Sources/Sentry/include/HybridPublic/PrivateSentrySDKOnly.h
+16 −4 Sources/Sentry/include/HybridPublic/SentryEnvelope.h
+3 −0 Sources/Sentry/include/SentryANRTracker.h
+4 −1 Sources/Sentry/include/SentryClient+Private.h
+0 −0 Sources/Sentry/include/SentryDefaultObjCRuntimeWrapper.h
+0 −0 Sources/Sentry/include/SentryNoOpSpan.h
+0 −0 Sources/Sentry/include/SentryProfilesSampler.h
+6 −1 Sources/Sentry/include/SentrySdkInfo.h
+0 −0 Sources/Sentry/include/SentrySubClassFinder.h
+11 −2 Sources/Sentry/include/SentryTraceContext.h
+0 −5 Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor.c
+0 −1 Sources/SentryCrash/Recording/Monitors/SentryCrashMonitorType.c
+3 −9 Sources/SentryCrash/Recording/Monitors/SentryCrashMonitorType.h
+0 −247 Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_Zombie.c
+0 −67 Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_Zombie.h
+0 −7 Sources/SentryCrash/Recording/SentryCrash.h
+1 −12 Sources/SentryCrash/Recording/SentryCrash.m
+0 −1 Sources/SentryCrash/Recording/SentryCrashC.c
+0 −20 Sources/SentryCrash/Recording/SentryCrashReport.c
+14 −0 Sources/SentryCrash/Recording/Tools/SentryCrashMachineContext.c
+7 −0 Sources/SentryCrash/Recording/Tools/SentryCrashMachineContext.h
+3 −1 Tests/SentryTests/Integrations/ANR/SentryANRTrackerTests.swift
+0 −4 Tests/SentryTests/Integrations/Performance/Network/SentryNetworkTrackerTests.swift
+1 −4 Tests/SentryTests/Protocol/SentryUserTests.swift
+1 −0 Tests/SentryTests/SentryCrash/SentryCrashReportStore_Tests.m
+22 −0 Tests/SentryTests/SentryCrash/SentryThreadInspectorTests.swift
+0 −13 Tests/SentryTests/TestUtils/SentryTestObserver.h
+0 −100 Tests/SentryTests/TestUtils/SentryTestObserver.m
+4 −0 develop-docs/README.md
5 changes: 2 additions & 3 deletions scripts/generate-cocoa-bindings.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,13 @@ if (!(Get-Command sharpie -ErrorAction SilentlyContinue)) {
}

# Generate bindings
# NOTE: We pull in SentryEnvelope.h manually, because it's in HybridPublic but not imported by PrivateSentrySDKOnly.h
Write-Output 'Generating bindings with Objective Sharpie.'
sharpie bind -sdk iphoneos -quiet `
-scope "$CocoaSdkPath/Carthage/Headers" `
"$CocoaSdkPath/Carthage/Headers/Sentry.h" `
"$CocoaSdkPath/Carthage/Headers/PrivateSentrySDKOnly.h" `
"$CocoaSdkPath/Carthage/Headers/SentryEnvelope.h" `
-o $BindingsPath
-o $BindingsPath `
-c -Wno-objc-property-no-attribute

# Ensure backup path exists
if (!(Test-Path $BackupPath)) {
Expand Down
318 changes: 196 additions & 122 deletions src/Sentry.Bindings.Cocoa/ApiDefinitions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,6 @@ interface SentryClient
[Export ("captureUserFeedback:")]
void CaptureUserFeedback (SentryUserFeedback userFeedback);

// -(void)captureSession:(SentrySession * _Nonnull)session __attribute__((swift_name("capture(session:)")));
[Export ("captureSession:")]
void CaptureSession (SentrySession session);

// -(void)flush:(NSTimeInterval)timeout __attribute__((swift_name("flush(timeout:)")));
[Export ("flush:")]
void Flush (double timeout);
Expand Down Expand Up @@ -1039,10 +1035,6 @@ interface SentryHub
[Export ("initWithClient:andScope:")]
NativeHandle Constructor ([NullAllowed] SentryClient client, [NullAllowed] SentryScope scope);

// @property (readonly, nonatomic, strong) SentrySession * _Nullable session;
[NullAllowed, Export ("session", ArgumentSemantic.Strong)]
SentrySession Session { get; }

// -(void)startSession;
[Export ("startSession")]
void StartSession ();
Expand Down Expand Up @@ -2028,144 +2020,86 @@ interface SentryAppStartMeasurement
NSDate DidFinishLaunchingTimestamp { get; }
}

// @interface SentryScreenFrames : NSObject
// @interface SentrySdkInfo : NSObject <SentrySerializable>
[BaseType (typeof(NSObject))]
[DisableDefaultCtor]
[Internal]
interface SentryScreenFrames
interface SentrySdkInfo : SentrySerializable
{
// -(instancetype _Nonnull)initWithTotal:(NSUInteger)total frozen:(NSUInteger)frozen slow:(NSUInteger)slow;
[Export ("initWithTotal:frozen:slow:")]
NativeHandle Constructor (nuint total, nuint frozen, nuint slow);

// -(instancetype _Nonnull)initWithTotal:(NSUInteger)total frozen:(NSUInteger)frozen slow:(NSUInteger)slow slowFrameTimestamps:(SentryFrameInfoTimeSeries * _Nonnull)slowFrameTimestamps frozenFrameTimestamps:(SentryFrameInfoTimeSeries * _Nonnull)frozenFrameTimestamps frameRateTimestamps:(SentryFrameInfoTimeSeries * _Nonnull)frameRateTimestamps;
[Export ("initWithTotal:frozen:slow:slowFrameTimestamps:frozenFrameTimestamps:frameRateTimestamps:")]
NativeHandle Constructor (nuint total, nuint frozen, nuint slow, NSDictionary<NSString, NSNumber>[] slowFrameTimestamps, NSDictionary<NSString, NSNumber>[] frozenFrameTimestamps, NSDictionary<NSString, NSNumber>[] frameRateTimestamps);

// @property (readonly, assign, nonatomic) NSUInteger total;
[Export ("total")]
nuint Total { get; }

// @property (readonly, assign, nonatomic) NSUInteger frozen;
[Export ("frozen")]
nuint Frozen { get; }
// @property (readonly, copy, nonatomic) NSString * _Nonnull name;
[Export ("name")]
string Name { get; }

// @property (readonly, assign, nonatomic) NSUInteger slow;
[Export ("slow")]
nuint Slow { get; }
// @property (readonly, copy, nonatomic) NSString * _Nonnull version;
[Export ("version")]
string Version { get; }

// @property (readonly, copy, nonatomic) SentryFrameInfoTimeSeries * _Nonnull slowFrameTimestamps;
[Export ("slowFrameTimestamps", ArgumentSemantic.Copy)]
NSDictionary<NSString, NSNumber>[] SlowFrameTimestamps { get; }
// -(instancetype _Nonnull)initWithName:(NSString * _Nonnull)name andVersion:(NSString * _Nonnull)version __attribute__((objc_designated_initializer));
[Export ("initWithName:andVersion:")]
[DesignatedInitializer]
NativeHandle Constructor (string name, string version);

// @property (readonly, copy, nonatomic) SentryFrameInfoTimeSeries * _Nonnull frozenFrameTimestamps;
[Export ("frozenFrameTimestamps", ArgumentSemantic.Copy)]
NSDictionary<NSString, NSNumber>[] FrozenFrameTimestamps { get; }
// -(instancetype _Nonnull)initWithDict:(NSDictionary * _Nonnull)dict;
[Export ("initWithDict:")]
NativeHandle Constructor (NSDictionary dict);

// @property (readonly, copy, nonatomic) SentryFrameInfoTimeSeries * _Nonnull frameRateTimestamps;
[Export ("frameRateTimestamps", ArgumentSemantic.Copy)]
NSDictionary<NSString, NSNumber>[] FrameRateTimestamps { get; }
// -(instancetype _Nonnull)initWithDict:(NSDictionary * _Nonnull)dict orDefaults:(SentrySdkInfo * _Nonnull)info;
[Export ("initWithDict:orDefaults:")]
NativeHandle Constructor (NSDictionary dict, SentrySdkInfo info);
}

// typedef void (^SentryOnAppStartMeasurementAvailable)(SentryAppStartMeasurement * _Nullable);
[Internal]
delegate void SentryOnAppStartMeasurementAvailable ([NullAllowed] SentryAppStartMeasurement appStartMeasurement);

// @interface PrivateSentrySDKOnly : NSObject
// @interface SentryTraceContext : NSObject <SentrySerializable>
[BaseType (typeof(NSObject))]
[Internal]
interface PrivateSentrySDKOnly
interface SentryTraceContext : SentrySerializable
{
// +(void)storeEnvelope:(SentryEnvelope * _Nonnull)envelope;
[Static]
[Export ("storeEnvelope:")]
void StoreEnvelope (SentryEnvelope envelope);

// +(void)captureEnvelope:(SentryEnvelope * _Nonnull)envelope;
[Static]
[Export ("captureEnvelope:")]
void CaptureEnvelope (SentryEnvelope envelope);

// +(SentryEnvelope * _Nullable)envelopeWithData:(NSData * _Nonnull)data;
[Static]
[Export ("envelopeWithData:")]
[return: NullAllowed]
SentryEnvelope EnvelopeWithData (NSData data);

// +(NSArray<SentryDebugMeta *> * _Nonnull)getDebugImages;
[Static]
[Export ("getDebugImages")]
SentryDebugMeta[] DebugImages { get; }

// +(void)setSdkName:(NSString * _Nonnull)sdkName andVersionString:(NSString * _Nonnull)versionString;
[Static]
[Export ("setSdkName:andVersionString:")]
void SetSdkName (string sdkName, string versionString);

// +(void)setSdkName:(NSString * _Nonnull)sdkName;
[Static]
[Export ("setSdkName:")]
void SetSdkName (string sdkName);

// +(NSString * _Nonnull)getSdkName;
[Static]
[Export ("getSdkName")]
string SdkName { get; }
// @property (readonly, nonatomic) SentryId * _Nonnull traceId;
[Export ("traceId")]
SentryId TraceId { get; }

// +(NSString * _Nonnull)getSdkVersionString;
[Static]
[Export ("getSdkVersionString")]
string SdkVersionString { get; }
// @property (readonly, nonatomic) NSString * _Nonnull publicKey;
[Export ("publicKey")]
string PublicKey { get; }

// @property (copy, nonatomic, class) SentryOnAppStartMeasurementAvailable _Nullable onAppStartMeasurementAvailable;
[Static]
[NullAllowed, Export ("onAppStartMeasurementAvailable", ArgumentSemantic.Copy)]
SentryOnAppStartMeasurementAvailable OnAppStartMeasurementAvailable { get; set; }
// @property (readonly, nonatomic) NSString * _Nullable releaseName;
[NullAllowed, Export ("releaseName")]
string ReleaseName { get; }

// @property (readonly, nonatomic, class) SentryAppStartMeasurement * _Nullable appStartMeasurement;
[Static]
[NullAllowed, Export ("appStartMeasurement")]
SentryAppStartMeasurement AppStartMeasurement { get; }
// @property (readonly, nonatomic) NSString * _Nullable environment;
[NullAllowed, Export ("environment")]
string Environment { get; }

// @property (readonly, copy, nonatomic, class) NSString * _Nonnull installationID;
[Static]
[Export ("installationID")]
string InstallationID { get; }
// @property (readonly, nonatomic) NSString * _Nullable transaction;
[NullAllowed, Export ("transaction")]
string Transaction { get; }

// @property (readonly, copy, nonatomic, class) SentryOptions * _Nonnull options;
[Static]
[Export ("options", ArgumentSemantic.Copy)]
SentryOptions Options { get; }
// @property (readonly, nonatomic) NSString * _Nullable userSegment;
[NullAllowed, Export ("userSegment")]
string UserSegment { get; }

// @property (assign, nonatomic, class) BOOL appStartMeasurementHybridSDKMode;
[Static]
[Export ("appStartMeasurementHybridSDKMode")]
bool AppStartMeasurementHybridSDKMode { get; set; }
// @property (nonatomic) NSString * _Nullable sampleRate;
[NullAllowed, Export ("sampleRate")]
string SampleRate { get; set; }

// @property (assign, nonatomic, class) BOOL framesTrackingMeasurementHybridSDKMode;
[Static]
[Export ("framesTrackingMeasurementHybridSDKMode")]
bool FramesTrackingMeasurementHybridSDKMode { get; set; }
// -(instancetype _Nonnull)initWithTraceId:(SentryId * _Nonnull)traceId publicKey:(NSString * _Nonnull)publicKey releaseName:(NSString * _Nullable)releaseName environment:(NSString * _Nullable)environment transaction:(NSString * _Nullable)transaction userSegment:(NSString * _Nullable)userSegment sampleRate:(NSString * _Nullable)sampleRate;
[Export ("initWithTraceId:publicKey:releaseName:environment:transaction:userSegment:sampleRate:")]
NativeHandle Constructor (SentryId traceId, string publicKey, [NullAllowed] string releaseName, [NullAllowed] string environment, [NullAllowed] string transaction, [NullAllowed] string userSegment, [NullAllowed] string sampleRate);

// @property (readonly, assign, nonatomic, class) BOOL isFramesTrackingRunning;
[Static]
[Export ("isFramesTrackingRunning")]
bool IsFramesTrackingRunning { get; }
// -(instancetype _Nullable)initWithScope:(SentryScope * _Nonnull)scope options:(SentryOptions * _Nonnull)options;
[Export ("initWithScope:options:")]
NativeHandle Constructor (SentryScope scope, SentryOptions options);

// @property (readonly, assign, nonatomic, class) SentryScreenFrames * _Nonnull currentScreenFrames;
[Static]
[Export ("currentScreenFrames", ArgumentSemantic.Assign)]
SentryScreenFrames CurrentScreenFrames { get; }
// -(instancetype _Nullable)initWithDict:(NSDictionary<NSString *,id> * _Nonnull)dictionary;
[Export ("initWithDict:")]
NativeHandle Constructor (NSDictionary<NSString, NSObject> dictionary);

// +(NSArray<NSData *> * _Nonnull)captureScreenshots;
[Static]
[Export ("captureScreenshots")]
NSData[] CaptureScreenshots();
// -(instancetype _Nullable)initWithTracer:(SentryTracer * _Nonnull)tracer scope:(SentryScope * _Nullable)scope options:(SentryOptions * _Nonnull)options;
[Export ("initWithTracer:scope:options:")]
NativeHandle Constructor (SentryTracer tracer, [NullAllowed] SentryScope scope, SentryOptions options);

// +(NSData * _Nonnull)captureViewHierarchy;
[Static]
[Export ("captureViewHierarchy")]
NSData CaptureViewHierarchy();
// -(SentryBaggage * _Nonnull)toBaggage;
[Export ("toBaggage")]
SentryBaggage ToBaggage();
}

// @interface SentryEnvelopeHeader : NSObject
Expand Down Expand Up @@ -2283,3 +2217,143 @@ interface SentryEnvelope
[Export ("items", ArgumentSemantic.Strong)]
SentryEnvelopeItem[] Items { get; }
}

// @interface SentryScreenFrames : NSObject
[BaseType (typeof(NSObject))]
[DisableDefaultCtor]
[Internal]
interface SentryScreenFrames
{
// -(instancetype _Nonnull)initWithTotal:(NSUInteger)total frozen:(NSUInteger)frozen slow:(NSUInteger)slow;
[Export ("initWithTotal:frozen:slow:")]
NativeHandle Constructor (nuint total, nuint frozen, nuint slow);

// -(instancetype _Nonnull)initWithTotal:(NSUInteger)total frozen:(NSUInteger)frozen slow:(NSUInteger)slow slowFrameTimestamps:(SentryFrameInfoTimeSeries * _Nonnull)slowFrameTimestamps frozenFrameTimestamps:(SentryFrameInfoTimeSeries * _Nonnull)frozenFrameTimestamps frameRateTimestamps:(SentryFrameInfoTimeSeries * _Nonnull)frameRateTimestamps;
[Export ("initWithTotal:frozen:slow:slowFrameTimestamps:frozenFrameTimestamps:frameRateTimestamps:")]
NativeHandle Constructor (nuint total, nuint frozen, nuint slow, NSDictionary<NSString, NSNumber>[] slowFrameTimestamps, NSDictionary<NSString, NSNumber>[] frozenFrameTimestamps, NSDictionary<NSString, NSNumber>[] frameRateTimestamps);

// @property (readonly, assign, nonatomic) NSUInteger total;
[Export ("total")]
nuint Total { get; }

// @property (readonly, assign, nonatomic) NSUInteger frozen;
[Export ("frozen")]
nuint Frozen { get; }

// @property (readonly, assign, nonatomic) NSUInteger slow;
[Export ("slow")]
nuint Slow { get; }

// @property (readonly, copy, nonatomic) SentryFrameInfoTimeSeries * _Nonnull slowFrameTimestamps;
[Export ("slowFrameTimestamps", ArgumentSemantic.Copy)]
NSDictionary<NSString, NSNumber>[] SlowFrameTimestamps { get; }

// @property (readonly, copy, nonatomic) SentryFrameInfoTimeSeries * _Nonnull frozenFrameTimestamps;
[Export ("frozenFrameTimestamps", ArgumentSemantic.Copy)]
NSDictionary<NSString, NSNumber>[] FrozenFrameTimestamps { get; }

// @property (readonly, copy, nonatomic) SentryFrameInfoTimeSeries * _Nonnull frameRateTimestamps;
[Export ("frameRateTimestamps", ArgumentSemantic.Copy)]
NSDictionary<NSString, NSNumber>[] FrameRateTimestamps { get; }
}

// typedef void (^SentryOnAppStartMeasurementAvailable)(SentryAppStartMeasurement * _Nullable);
[Internal]
delegate void SentryOnAppStartMeasurementAvailable ([NullAllowed] SentryAppStartMeasurement appStartMeasurement);

// @interface PrivateSentrySDKOnly : NSObject
[BaseType (typeof(NSObject))]
[Internal]
interface PrivateSentrySDKOnly
{
// +(void)storeEnvelope:(SentryEnvelope * _Nonnull)envelope;
[Static]
[Export ("storeEnvelope:")]
void StoreEnvelope (SentryEnvelope envelope);

// +(void)captureEnvelope:(SentryEnvelope * _Nonnull)envelope;
[Static]
[Export ("captureEnvelope:")]
void CaptureEnvelope (SentryEnvelope envelope);

// +(SentryEnvelope * _Nullable)envelopeWithData:(NSData * _Nonnull)data;
[Static]
[Export ("envelopeWithData:")]
[return: NullAllowed]
SentryEnvelope EnvelopeWithData (NSData data);

// +(NSArray<SentryDebugMeta *> * _Nonnull)getDebugImages;
[Static]
[Export ("getDebugImages")]
SentryDebugMeta[] DebugImages { get; }

// +(void)setSdkName:(NSString * _Nonnull)sdkName andVersionString:(NSString * _Nonnull)versionString;
[Static]
[Export ("setSdkName:andVersionString:")]
void SetSdkName (string sdkName, string versionString);

// +(void)setSdkName:(NSString * _Nonnull)sdkName;
[Static]
[Export ("setSdkName:")]
void SetSdkName (string sdkName);

// +(NSString * _Nonnull)getSdkName;
[Static]
[Export ("getSdkName")]
string SdkName { get; }

// +(NSString * _Nonnull)getSdkVersionString;
[Static]
[Export ("getSdkVersionString")]
string SdkVersionString { get; }

// @property (copy, nonatomic, class) SentryOnAppStartMeasurementAvailable _Nullable onAppStartMeasurementAvailable;
[Static]
[NullAllowed, Export ("onAppStartMeasurementAvailable", ArgumentSemantic.Copy)]
SentryOnAppStartMeasurementAvailable OnAppStartMeasurementAvailable { get; set; }

// @property (readonly, nonatomic, class) SentryAppStartMeasurement * _Nullable appStartMeasurement;
[Static]
[NullAllowed, Export ("appStartMeasurement")]
SentryAppStartMeasurement AppStartMeasurement { get; }

// @property (readonly, copy, nonatomic, class) NSString * _Nonnull installationID;
[Static]
[Export ("installationID")]
string InstallationID { get; }

// @property (readonly, copy, nonatomic, class) SentryOptions * _Nonnull options;
[Static]
[Export ("options", ArgumentSemantic.Copy)]
SentryOptions Options { get; }

// @property (assign, nonatomic, class) BOOL appStartMeasurementHybridSDKMode;
[Static]
[Export ("appStartMeasurementHybridSDKMode")]
bool AppStartMeasurementHybridSDKMode { get; set; }

// @property (assign, nonatomic, class) BOOL framesTrackingMeasurementHybridSDKMode;
[Static]
[Export ("framesTrackingMeasurementHybridSDKMode")]
bool FramesTrackingMeasurementHybridSDKMode { get; set; }

// @property (readonly, assign, nonatomic, class) BOOL isFramesTrackingRunning;
[Static]
[Export ("isFramesTrackingRunning")]
bool IsFramesTrackingRunning { get; }

// @property (readonly, assign, nonatomic, class) SentryScreenFrames * _Nonnull currentScreenFrames;
[Static]
[Export ("currentScreenFrames", ArgumentSemantic.Assign)]
SentryScreenFrames CurrentScreenFrames { get; }

// +(NSArray<NSData *> * _Nonnull)captureScreenshots;
[Static]
[Export ("captureScreenshots")]
NSData[] CaptureScreenshots();

// +(NSData * _Nonnull)captureViewHierarchy;
[Static]
[Export ("captureViewHierarchy")]
NSData CaptureViewHierarchy();
}