Code Block Exception Type: EXC_BREAKPOINT (SIGTRAP) |
This strongly indicates that some code running inside your app has trapped, that is, it’s deliberately crashed your process because it detected an unrecoverable state.
In such situations you’d want to look at the backtrace of the crashing thread:
Code Block Thread 0 Crashed: |
0 CoreFoundation … -[__NSGenericDeallocHandler release] + 68 |
1 Capacitor … 0x1011d4000 + 231980 |
2 Capacitor … 0x1011d4000 + 231980 |
3 Capacitor … 0x1011d4000 + 213992 |
4 Capacitor … 0x1011d4000 + 210552 |
5 Capacitor … 0x1011d4000 + 316984 |
6 Capacitor … 0x1011d4000 + 322112 |
7 UIKitCore … -[UIViewController loadViewIfRequired] + 172 |
__NSGenericDeallocHandler is an internal class that holds on to a block (the Objective-C equivalent to a closure in Swift and other languages) and calls that block when the object is deallocated [1]. This deallocation code will trap if it’s called twice, and it’s very likely that’s the trap you’re hitting.
It’s hard to say how you’re hitting this because the immediate caller, frame 1 in the backtrace above, is not symbolicated. You’ll need to symbolicate your crash before before you can make any progress on this. See
Adding Identifiable Symbol Names to a Crash Report.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"[1] The fact that the call you see is coming from the
-release method is an oddity of the implementation.