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

feat: Option for uncaught NSExceptions on macOS #4471

Merged
merged 7 commits into from
Oct 29, 2024

Conversation

philipphofmann
Copy link
Member

@philipphofmann philipphofmann commented Oct 24, 2024

📜 Description

Add a new option, enableReportingUncaughtExceptions, for reporting uncaught exceptions on macOS. AS SwiftUI applications on macOS can't easily set a Principal class in the Info.plist, especially when using the NSApplicationDelegate, our existing solution of the SentryCrashExceptionApplication doesn't work for them. This new option fixes that problem.

Docs PR: getsentry/sentry-docs#11671

💡 Motivation and Context

A customer reported the current setup doesn't work for them when using NSApplicationDelegate.

💚 How did you test it?

Unit tests and manually with the simulator. I compared the new way (enableReportingUncaughtExceptions) with the old way of SentryCrashExceptionApplication and all three tests worked the same way. Report exception seems a bit broken, but that was already the case before. We should look at this individually.

Simulator tests

I added three different ways for reporting NSExcption.

  1. Raise: Creating an NSException and calling raise() on it.
  2. Report: Creating an NSException and calling NSApplication.shared.reportException(exception)
  3. NSRange: Accessing an array out of bounds in ObjC.

macOS-SwiftUI

Raise

https://sentry-sdks.sentry.io/issues/6016580829/events/1cfac198b76944878b21610eac25b941/?project=5428557
image

Report

https://sentry-sdks.sentry.io/issues/6016587329/events/ebefcb69480243cebbc4b42ba15519e6/?project=5428557
image

NSRange

https://sentry-sdks.sentry.io/issues/6016594158/events/31eabb811c0d47aeaa8d997d087f878b/?project=5428557
image

macOS-Swift

Raise

https://sentry-sdks.sentry.io/issues/6016621535/events/3fcff45068e3481486617c4eb447d818/?project=5428557
image

Report

https://sentry-sdks.sentry.io/issues/6016587329/events/3c402084c01442eea986fc8cd6476ec7/?project=5428557
image

NSRange

https://sentry-sdks.sentry.io/issues/6016756316/events/21241a61000c4e278aa6908f26b35ddf/?project=5428557
CleanShot 2024-10-24 at 14 42 45@2x

Xcode Crash Reports

Xcode Crash Report Raise

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x000000018f3411fc

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [30212]

Application Specific Backtrace 0:
0   CoreFoundation                      0x000000018b59cec0 __exceptionPreprocess + 176
1   libobjc.A.dylib                     0x000000018b082cd8 objc_exception_throw + 88
2   CoreFoundation                      0x000000018b5c154c _CFBundleGetValueForInfoKey + 0
3   macOS-SwiftUI.debug.dylib           0x0000000102fcfa90 $s13macOS_SwiftUI11ContentViewV16raiseNSExceptionyyF + 552
4   macOS-SwiftUI.debug.dylib           0x0000000102fcf860 $s13macOS_SwiftUI11ContentViewV4bodyQrvg0cD005TupleF0VyAE6ButtonVyAE4TextVG_A3LtGyXEfU_yycACcfu1_yycfu2_ + 12
5   SwiftUI                             0x00000001ba87c394 $s7SwiftUI12ButtonActionO14callAsFunctionyyFyyScMYcXEfU_ + 32
6   SwiftUI                             0x00000001b9598280 $s7SwiftUI12ButtonActionO14callAsFunctionyyFyyScMYcXEfU_TA + 20
7   SwiftUI                             0x00000001b9ca52d8 $sxs5Error_pIgrzo_xsAA_pIegrzo_s8SendableRzlTRyt_Tg5TA + 28
8   SwiftUI                             0x00000001b9ca2ce8 $sScM14assumeIsolated_4file4linexxyKScMYcXE_s12StaticStringVSutKs8SendableRzlFZyt_Tg5 + 132
9   SwiftUI                             0x00000001ba214978 $s7SwiftUI17AppKitButtonStyleV7ContentV4body11environmentQrAA17EnvironmentValuesV_tFyycAA09PrimitiveeF13ConfigurationVcfu_yycfu0_ + 468
10  SwiftUI                             0x00000001ba21f4e8 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFyycfU0_TA + 28
11  SwiftUICore                         0x000000022665a540 $sIeg_ytIegr_TRTA + 28
12  SwiftUICore                         0x00000002268fc280 $s7SwiftUI6UpdateO15dispatchActionsyyFZ + 1236
13  SwiftUICore                         0x00000002268fb764 $s7SwiftUI6UpdateO3endyyFZ + 212
14  SwiftUI                             0x00000001ba21f124 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFTf4dn_n + 320
15  SwiftUI                             0x00000001ba21d2c4 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFTo + 52
16  AppKit                              0x000000018f20da50 -[NSApplication(NSResponder) sendAction:to:from:] + 460
17  AppKit                              0x000000018f6924e4 __40-[NSControl _sendActionsForEvents:view:]_block_invoke + 216
18  AppKit                              0x000000018f6923bc -[NSControl _sendActionsForEvents:view:] + 216
19  AppKit                              0x000000018f20abcc NSControlTrackMouse + 1616
20  AppKit                              0x000000018f20a550 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 144
21  AppKit                              0x000000018f20a3c8 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 580
22  AppKit                              0x000000018f20984c -[NSControl mouseDown:] + 448
23  AppKit                              0x000000018f2086ec -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 3672
24  AppKit                              0x000000018f194044 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 384
25  AppKit                              0x000000018f193cf4 -[NSWindow(NSEventRouting) sendEvent:] + 284
26  AppKit                              0x000000018f99159c -[NSApplication(NSEventRouting) sendEvent:] + 1656
27  AppKit                              0x000000018f5a4984 -[NSApplication _handleEvent:] + 60
28  AppKit                              0x000000018f05fba4 -[NSApplication run] + 520
29  AppKit                              0x000000018f03644c NSApplicationMain + 888
30  SwiftUI                             0x00000001b952c784 $s7SwiftUI6runAppys5NeverOSo21NSApplicationDelegate_So11NSResponderCXcFTf4e_nAA07TestingdG0C_Tg5Tm + 160
31  SwiftUI                             0x00000001b99b030c $s7SwiftUI6runAppys5NeverOxAA0D0RzlF + 84
32  SwiftUI                             0x00000001b9cbfbec $s7SwiftUI3AppPAAE4mainyyFZ + 224
33  macOS-SwiftUI.debug.dylib           0x0000000102fd172c $s13macOS_SwiftUI15MacOSSwiftUIAppV5$mainyyFZ + 40
34  macOS-SwiftUI.debug.dylib           0x0000000102fd1d94 __debug_main_executable_dylib_entry_point + 12
35  dyld                                0x000000018b0c0274 start + 2840


Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   AppKit                        	       0x18f3411fc -[NSApplication _crashOnException:] + 256
1   AppKit                        	       0x18f340fbc -[NSApplication reportException:] + 460
2   Sentry                        	       0x10330b1c8 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 124 (SentryUncaughtNSExceptions.m:26)
3   AppKit                        	       0x18f5a2990 NSApplicationUncaughtExceptionHandler + 152
4   Sentry                        	       0x10336b4ac handleException + 2088 (SentryCrashMonitor_NSException.m:105)
5   Sentry                        	       0x10336ac6c handleUncaughtException + 48 (SentryCrashMonitor_NSException.m:113)
6   Sentry                        	       0x10330b2a4 +[SentryUncaughtNSExceptions capture:] + 196 (SentryUncaughtNSExceptions.m:47)
7   Sentry                        	       0x10330b1a0 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 84 (SentryUncaughtNSExceptions.m:26)
8   AppKit                        	       0x18f05fc34 -[NSApplication run] + 664
9   AppKit                        	       0x18f03644c NSApplicationMain + 888
10  SwiftUI                       	       0x1b952c784 specialized runApp(_:) + 160
11  SwiftUI                       	       0x1b99b030c runApp<A>(_:) + 84
12  SwiftUI                       	       0x1b9cbfbec static App.main() + 224
13  macOS-SwiftUI.debug.dylib     	       0x102fd172c static MacOSSwiftUIApp.$main() + 40
14  macOS-SwiftUI.debug.dylib     	       0x102fd1d94 __debug_main_executable_dylib_entry_point + 12 (macOS_SwiftUIApp.swift:5)
15  dyld                          	       0x18b0c0274 start + 2840

Xcode Crash Report Report

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x000000018f3411fc

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [30000]

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   AppKit                        	       0x18f3411fc -[NSApplication _crashOnException:] + 256
1   AppKit                        	       0x18f340fbc -[NSApplication reportException:] + 460
2   Sentry                        	       0x1047df1c8 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 124 (SentryUncaughtNSExceptions.m:26)
3   AppKit                        	       0x18f5a2990 NSApplicationUncaughtExceptionHandler + 152
4   Sentry                        	       0x10483f4ac handleException + 2088 (SentryCrashMonitor_NSException.m:105)
5   Sentry                        	       0x10483ec6c handleUncaughtException + 48 (SentryCrashMonitor_NSException.m:113)
6   Sentry                        	       0x1047df2a4 +[SentryUncaughtNSExceptions capture:] + 196 (SentryUncaughtNSExceptions.m:47)
7   Sentry                        	       0x1047df1a0 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 84 (SentryUncaughtNSExceptions.m:26)
8   macOS-SwiftUI.debug.dylib     	       0x1044a3eb0 ContentView.reportNSException() + 584 (ContentView.swift:40)
9   macOS-SwiftUI.debug.dylib     	       0x1044a3c60 implicit closure #6 in implicit closure #5 in closure #1 in ContentView.body.getter + 12 (ContentView.swift:15)
10  SwiftUI                       	       0x1ba87c394 closure #1 in ButtonAction.callAsFunction() + 32
11  SwiftUI                       	       0x1b9598280 partial apply for closure #1 in ButtonAction.callAsFunction() + 20
12  SwiftUI                       	       0x1b9ca52d8 partial apply for specialized thunk for @callee_guaranteed () -> (@out A, @error @owned Error) + 28
13  SwiftUI                       	       0x1b9ca2ce8 specialized static MainActor.assumeIsolated<A>(_:file:line:) + 132
14  SwiftUI                       	       0x1ba214978 implicit closure #2 in implicit closure #1 in AppKitButtonStyle.Content.body(environment:) + 468
15  SwiftUI                       	       0x1ba21f4e8 partial apply for closure #2 in SwiftUIAppKitButton.didReleaseButton(_:) + 28
16  SwiftUICore                   	       0x22665a540 partial apply for thunk for @escaping @callee_guaranteed () -> () + 28
17  SwiftUICore                   	       0x2268fc280 static Update.dispatchActions() + 1236
18  SwiftUICore                   	       0x2268fb764 static Update.end() + 212
19  SwiftUI                       	       0x1ba21f124 specialized SwiftUIAppKitButton.didReleaseButton(_:) + 320
20  SwiftUI                       	       0x1ba21d2c4 @objc SwiftUIAppKitButton.didReleaseButton(_:) + 52
21  AppKit                        	       0x18f20da50 -[NSApplication(NSResponder) sendAction:to:from:] + 460
22  AppKit                        	       0x18f6924e4 __40-[NSControl _sendActionsForEvents:view:]_block_invoke + 216
23  AppKit                        	       0x18f6923bc -[NSControl _sendActionsForEvents:view:] + 216
24  AppKit                        	       0x18f20abcc NSControlTrackMouse + 1616
25  AppKit                        	       0x18f20a550 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 144
26  AppKit                        	       0x18f20a3c8 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 580
27  AppKit                        	       0x18f20984c -[NSControl mouseDown:] + 448
28  AppKit                        	       0x18f2086ec -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 3672
29  AppKit                        	       0x18f194044 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 384
30  AppKit                        	       0x18f193cf4 -[NSWindow(NSEventRouting) sendEvent:] + 284
31  AppKit                        	       0x18f99159c -[NSApplication(NSEventRouting) sendEvent:] + 1656
32  AppKit                        	       0x18f5a4984 -[NSApplication _handleEvent:] + 60
33  AppKit                        	       0x18f05fba4 -[NSApplication run] + 520
34  AppKit                        	       0x18f03644c NSApplicationMain + 888
35  SwiftUI                       	       0x1b952c784 specialized runApp(_:) + 160
36  SwiftUI                       	       0x1b99b030c runApp<A>(_:) + 84
37  SwiftUI                       	       0x1b9cbfbec static App.main() + 224
38  macOS-SwiftUI.debug.dylib     	       0x1044a572c static MacOSSwiftUIApp.$main() + 40
39  macOS-SwiftUI.debug.dylib     	       0x1044a5d94 __debug_main_executa

Xcode Crash Report NSRange

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x000000018f3411fc

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [29181]

Application Specific Backtrace 0:
0   CoreFoundation                      0x000000018b59cec0 __exceptionPreprocess + 176
1   libobjc.A.dylib                     0x000000018b082cd8 objc_exception_throw + 88
2   CoreFoundation                      0x000000018b5c5540 CFArrayApply + 0
3   Sentry                              0x00000001031a4704 +[SentrySDK crash] + 72
4   macOS-SwiftUI.debug.dylib           0x0000000102de00b0 $s13macOS_SwiftUI11ContentViewV5crashyyF + 32
5   macOS-SwiftUI.debug.dylib           0x0000000102de0088 $s13macOS_SwiftUI11ContentViewV4bodyQrvg0cD005TupleF0VyAE6ButtonVyAE4TextVG_A3LtGyXEfU_yycACcfu5_yycfu6_ + 12
6   SwiftUI                             0x00000001ba87c394 $s7SwiftUI12ButtonActionO14callAsFunctionyyFyyScMYcXEfU_ + 32
7   SwiftUI                             0x00000001b9598280 $s7SwiftUI12ButtonActionO14callAsFunctionyyFyyScMYcXEfU_TA + 20
8   SwiftUI                             0x00000001b9ca52d8 $sxs5Error_pIgrzo_xsAA_pIegrzo_s8SendableRzlTRyt_Tg5TA + 28
9   SwiftUI                             0x00000001b9ca2ce8 $sScM14assumeIsolated_4file4linexxyKScMYcXE_s12StaticStringVSutKs8SendableRzlFZyt_Tg5 + 132
10  SwiftUI                             0x00000001ba214978 $s7SwiftUI17AppKitButtonStyleV7ContentV4body11environmentQrAA17EnvironmentValuesV_tFyycAA09PrimitiveeF13ConfigurationVcfu_yycfu0_ + 468
11  SwiftUI                             0x00000001ba21f4e8 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFyycfU0_TA + 28
12  SwiftUICore                         0x000000022665a540 $sIeg_ytIegr_TRTA + 28
13  SwiftUICore                         0x00000002268fc280 $s7SwiftUI6UpdateO15dispatchActionsyyFZ + 1236
14  SwiftUICore                         0x00000002268fb764 $s7SwiftUI6UpdateO3endyyFZ + 212
15  SwiftUI                             0x00000001ba21f124 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFTf4dn_n + 320
16  SwiftUI                             0x00000001ba21d2c4 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFTo + 52
17  AppKit                              0x000000018f20da50 -[NSApplication(NSResponder) sendAction:to:from:] + 460
18  AppKit                              0x000000018f6924e4 __40-[NSControl _sendActionsForEvents:view:]_block_invoke + 216
19  AppKit                              0x000000018f6923bc -[NSControl _sendActionsForEvents:view:] + 216
20  AppKit                              0x000000018f20abcc NSControlTrackMouse + 1616
21  AppKit                              0x000000018f20a550 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 144
22  AppKit                              0x000000018f20a3c8 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 580
23  AppKit                              0x000000018f20984c -[NSControl mouseDown:] + 448
24  AppKit                              0x000000018f2086ec -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 3672
25  AppKit                              0x000000018f194044 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 384
26  AppKit                              0x000000018f193cf4 -[NSWindow(NSEventRouting) sendEvent:] + 284
27  AppKit                              0x000000018f99159c -[NSApplication(NSEventRouting) sendEvent:] + 1656
28  AppKit                              0x000000018f5a4984 -[NSApplication _handleEvent:] + 60
29  AppKit                              0x000000018f05fba4 -[NSApplication run] + 520
30  AppKit                              0x000000018f03644c NSApplicationMain + 888
31  SwiftUI                             0x00000001b952c784 $s7SwiftUI6runAppys5NeverOSo21NSApplicationDelegate_So11NSResponderCXcFTf4e_nAA07TestingdG0C_Tg5Tm + 160
32  SwiftUI                             0x00000001b99b030c $s7SwiftUI6runAppys5NeverOxAA0D0RzlF + 84
33  SwiftUI                             0x00000001b9cbfbec $s7SwiftUI3AppPAAE4mainyyFZ + 224
34  macOS-SwiftUI.debug.dylib           0x0000000102de172c $s13macOS_SwiftUI15MacOSSwiftUIAppV5$mainyyFZ + 40
35  macOS-SwiftUI.debug.dylib           0x0000000102de1d94 __debug_main_executable_dylib_entry_point + 12
36  dyld                                0x000000018b0c0274 start + 2840


Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   AppKit                        	       0x18f3411fc -[NSApplication _crashOnException:] + 256
1   AppKit                        	       0x18f340fbc -[NSApplication reportException:] + 460
2   Sentry                        	       0x10311b1c8 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 124 (SentryUncaughtNSExceptions.m:26)
3   AppKit                        	       0x18f5a2990 NSApplicationUncaughtExceptionHandler + 152
4   Sentry                        	       0x10317b4ac handleException + 2088 (SentryCrashMonitor_NSException.m:105)
5   Sentry                        	       0x10317ac6c handleUncaughtException + 48 (SentryCrashMonitor_NSException.m:113)
6   Sentry                        	       0x10311b2a4 +[SentryUncaughtNSExceptions capture:] + 196 (SentryUncaughtNSExceptions.m:47)
7   Sentry                        	       0x10311b1a0 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 84 (SentryUncaughtNSExceptions.m:26)
8   AppKit                        	       0x18f05fc34 -[NSApplication run] + 664
9   AppKit                        	       0x18f03644c NSApplicationMain + 888
10  SwiftUI                       	       0x1b952c784 specialized runApp(_:) + 160
11  SwiftUI                       	       0x1b99b030c runApp<A>(_:) + 84
12  SwiftUI                       	       0x1b9cbfbec static App.main() + 224
13  macOS-SwiftUI.debug.dylib     	       0x102de172c static MacOSSwiftUIApp.$main() + 40
14  macOS-SwiftUI.debug.dylib     	       0x102de1d94 __debug_main_executable_dylib_entry_point + 12 (macOS_SwiftUIApp.swift:5)
15  dyld                          	       0x18b0c0274 start + 2840

📝 Checklist

You have to check all boxes before merging:

  • I reviewed the submitted code.
  • I added tests to verify the changes.
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled.
  • I updated the docs if needed.
  • Review from the native team if needed.
  • No breaking change or entry added to the changelog.
  • No breaking change for hybrid SDKs or communicated to hybrid SDKs.

🔮 Next steps

Add a new option, enableReportingUncaughtExceptions, for reporting
uncaught exceptions on macOS. AS SwiftUI applications on macOS can't
easily set a Principal class in the Info.plist, especially when using
the NSApplicationDelegate, our existing solution of the
SentryCrashExceptionApplication doesn't work for them. This new option
fixes that problem.
Copy link

github-actions bot commented Oct 24, 2024

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 42572ec

Copy link

codecov bot commented Oct 24, 2024

Codecov Report

Attention: Patch coverage is 17.64706% with 14 lines in your changes missing coverage. Please review.

Project coverage is 91.797%. Comparing base (27bdedd) to head (42572ec).
Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
SentryTestUtils/ClearTestState.swift 0.000% 9 Missing ⚠️
.../SentryCrash/SentryUncaughtNSExceptionsTests.swift 0.000% 5 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@              Coverage Diff              @@
##              main     #4471       +/-   ##
=============================================
- Coverage   91.807%   91.797%   -0.011%     
=============================================
  Files          610       611        +1     
  Lines        68235     68247       +12     
  Branches     24502     24496        -6     
=============================================
+ Hits         62645     62649        +4     
- Misses        5498      5505        +7     
- Partials        92        93        +1     
Files with missing lines Coverage Δ
Sources/Sentry/SentryCrashIntegration.m 99.047% <100.000%> (+0.018%) ⬆️
Sources/Sentry/SentryOptions.m 99.433% <ø> (ø)
...ions/SentryCrash/SentryCrashIntegrationTests.swift 86.850% <ø> (ø)
Tests/SentryTests/SentryOptionsTest.m 98.451% <ø> (ø)
.../SentryCrash/SentryUncaughtNSExceptionsTests.swift 0.000% <0.000%> (ø)
SentryTestUtils/ClearTestState.swift 85.714% <0.000%> (-14.286%) ⬇️

... and 9 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 27bdedd...42572ec. Read the comment docs.

Copy link

github-actions bot commented Oct 24, 2024

Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1233.08 ms 1249.00 ms 15.92 ms
Size 21.90 KiB 708.89 KiB 686.99 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
630ddf4 1216.50 ms 1235.94 ms 19.44 ms
b15521e 1246.51 ms 1262.96 ms 16.45 ms
f0737f6 1220.43 ms 1236.44 ms 16.01 ms
5be7a7c 1223.12 ms 1236.61 ms 13.49 ms
1ee5a37 1209.37 ms 1222.04 ms 12.68 ms
3297d6e 1209.27 ms 1231.19 ms 21.92 ms
addcf42 1247.33 ms 1253.58 ms 6.25 ms
d605f55 1219.76 ms 1237.55 ms 17.80 ms
9f0d9e0 1212.49 ms 1220.27 ms 7.78 ms
ecd9ecd 1191.76 ms 1216.92 ms 25.16 ms

App size

Revision Plain With Sentry Diff
630ddf4 20.76 KiB 432.37 KiB 411.61 KiB
b15521e 21.58 KiB 573.17 KiB 551.59 KiB
f0737f6 20.76 KiB 437.12 KiB 416.36 KiB
5be7a7c 21.58 KiB 671.90 KiB 650.32 KiB
1ee5a37 21.58 KiB 670.39 KiB 648.81 KiB
3297d6e 21.58 KiB 418.44 KiB 396.86 KiB
addcf42 22.85 KiB 413.42 KiB 390.57 KiB
d605f55 21.90 KiB 707.58 KiB 685.68 KiB
9f0d9e0 21.58 KiB 424.28 KiB 402.70 KiB
ecd9ecd 20.76 KiB 420.23 KiB 399.47 KiB

Previous results on branch: feat/uncaught-ns-exceptions

Startup times

Revision Plain With Sentry Diff
a3b8d95 1245.37 ms 1258.92 ms 13.55 ms
4afcecf 1242.71 ms 1260.61 ms 17.90 ms
27158ef 1213.46 ms 1239.08 ms 25.62 ms

App size

Revision Plain With Sentry Diff
a3b8d95 21.90 KiB 707.97 KiB 686.06 KiB
4afcecf 21.90 KiB 708.90 KiB 687.00 KiB
27158ef 21.90 KiB 707.97 KiB 686.07 KiB

@philipphofmann philipphofmann changed the title feat: Option for uncaught NSExceptions on maOS feat: Option for uncaught NSExceptions on macOS Oct 24, 2024
@brustolin
Copy link
Contributor

Sorry @philipphofmann, I will only be able to review this on Monday

Copy link
Contributor

@brustolin brustolin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes look straightforward, but CI is not happy.

  • some minor comments.

@philipphofmann philipphofmann merged commit df9fb5b into main Oct 29, 2024
62 of 65 checks passed
@philipphofmann philipphofmann deleted the feat/uncaught-ns-exceptions branch October 29, 2024 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants