I'm developing an application, MainProject, that has an embedded framework, EmbeddedFramework (also developed by my team), and I'm incorporating Firebase Crashlytics in order to get crash reports.
The crash reporting is working just fine in the base application, I'm getting deofuscated reports that point to the exact line where the crash happened.
In the other hand, the crash reporting fails when a crash occurs inside of the embedded
framework. When that happens, all I get is a <compiler generated> or a <specialized> line of code, making it really hard to identify and/or debug.
For example, for this instance of a crash report in Firebase:
Crashed: com.apple.main-thread 0 EmbeddedFramework 0x101b38628 $s6EmbeddedFramework0A14AuthenticationC6isIdleSbvg + 114 1 MainProject 0x100d07a94 specialized EntryViewController.clickLogin(sender:) + 884 (:884) 2 MainProject 0x100d035c4 @objc EntryViewController.clickLogin(sender:) + 48 (:48) 3 UIKitCore 0x1dbde7300 -[UIApplication sendAction:to:from:forEvent:] + 96 4 UIKitCore 0x1db890424 -[UIControl sendAction:to:forEvent:] + 80 5 UIKitCore 0x1db890744 -[UIControl _sendActionsForEvents:withEvent:] + 440 6 UIKitCore 0x1db88f7b0 -[UIControl touchesEnded:withEvent:] + 568 7 UIKitCore 0x1dbe1e5c4 -[UIWindow _sendTouchesForEvent:] + 2108 8 UIKitCore 0x1dbe1f7ec -[UIWindow sendEvent:] + 3140 9 UIKitCore 0x1dbdff85c -[UIApplication sendEvent:] + 340 10 UIKitCore 0x1dbec59d4 __dispatchPreprocessedEventFromEventQueue + 1768 11 UIKitCore 0x1dbec8100 __handleEventQueueInternal + 4828 12 UIKitCore 0x1dbec1330 __handleHIDEventFetcherDrain + 152 13 CoreFoundation 0x1af46c728 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24 14 CoreFoundation 0x1af46c6a8 __CFRunLoopDoSource0 + 88 15 CoreFoundation 0x1af46bf90 __CFRunLoopDoSources0 + 176 16 CoreFoundation 0x1af466ecc __CFRunLoopRun + 1004 17 CoreFoundation 0x1af4667c0 CFRunLoopRunSpecific + 436 18 GraphicsServices 0x1b166779c GSEventRunModal + 104 19 UIKitCore 0x1dbde5c38 UIApplicationMain + 212 20 MainProject 0x100cc9294 main + 24 (AppDelegate.swift:24) 21 libdyld.dylib 0x1aef2a8e0 start + 4
The report points to the function clickLogin(sender:) in the class EntryViewController, but I know for a fact that the crash is happening in the Authentication method in the EmbeddedFramework (aka, the line 0 of the crash trace), because I'm causing it for test purposes. However, the exact place and motive of the crash is obscured and hidden away.
Why does this happen? Is it possible to make Firebase to recognize the crashes happening inside a embedded framework and point to the correct line?
Thanks a lot in advance.