2 Replies
      Latest reply on Feb 7, 2020 1:39 AM by DracoRubi
      DracoRubi Level 1 Level 1 (0 points)

        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:

          [1]: https://i.stack.imgur.com/ulmPS.png

         

        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.