Я разрабатываю приложение, MainProject
, которое имеет встроенный фреймворк EmbeddedFramework
(также разработанный моей командой), и я включаю Firebase Crashlytics для получения отчетов sh.
В базовом приложении отчеты cra sh работают нормально, я получаю расфокусированные отчеты, указывающие на точную линию, где произошел cra sh.
В другом С другой стороны, отчет cra sh завершается ошибкой, когда cra sh происходит внутри встроенной платформы. Когда это происходит, все, что я получаю, это строка кода <compiler generated>
или <specialized>
, что делает его действительно трудным для идентификации и / или отладки.
Например, для этого экземпляра cra sh отчет в Firebase:
Crashed: com.apple.main-thread
0 EmbeddedFramework 0x101b38628 $s6EmbeddedFramework0A14AuthenticationC6isIdleSbvg + 114
1 MainProject 0x100d07a94 specialized EntryViewController.clickLogin(sender:) + 884 (<compiler-generated>:884)
2 MainProject 0x100d035c4 @objc EntryViewController.clickLogin(sender:) + 48 (<compiler-generated>: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
Отчет указывает на функцию clickLogin(sender:)
в классе EntryViewController
, но я точно знаю, что cra sh происходит в методе Authentication
в EmbeddedFramework
, потому что я вызываю его для целей тестирования. Однако эта информация скрыта и скрыта.
Почему это происходит? Можно ли заставить Firebase распознавать сбои, происходящие внутри встроенного фреймворка, и указывать на правильную строку?