我的 iOS swift 应用程序在 crashlytics 中遇到了令人担忧的 EXC_BREAKPOINT 崩溃。
我尝试通过查看方法 'populate(user:withLegacyUsage:)' 并确保我的 optional 被正确解包来修复错误。在这种方法中,我还在循环遍历该数组时删除了数组中的元素。我认为这可能导致了错误,但在上传我的修补版本后错误仍然发生。
我想我有两个问题:
感谢您提供任何提示或帮助!
Crashed: com.apple.main-thread
0 myAppName 0x1008d3c60 closure #3 in UserManager.populate(user:withLegacyUsage:) + 4304075872 (<compiler-generated>:4304075872)
1 myAppName 0x1008d6c74 specialized UserManager.populate(user:withLegacyUsage:) + 4304088180 (<compiler-generated>:4304088180)
2 myAppName 0x1008d3664 closure #1 in UserManager.loadLegacyUsers(withCompletionHandler:) + 129 (UserManager.swift:129)
3 myAppName 0x1008f0f34 closure #1 in LoginViewController.viewDidLoad() + 4304195380 (<compiler-generated>:4304195380)
4 myAppName 0x1008f39cc partial apply for closure #1 in LoginViewController.playIntroAnimation(withCompletionHandler:) + 4304206284 (<compiler-generated>:4304206284)
5 myAppName 0x1008c9e90 partial apply for closure #1 in AnimationManager.playAnimation(inView:withCompletionHandler:) + 4304035472 (<compiler-generated>:4304035472)
6 Lottie 0x101315b78 $s6Lottie27AnimationCompletionDelegateC16animationDidStop_8finishedySo11CAAnimationC_SbtF + 416
7 Lottie 0x101315bec $s6Lottie27AnimationCompletionDelegateC16animationDidStop_8finishedySo11CAAnimationC_SbtFTo + 64
8 QuartzCore 0x18d6efdac CA::Layer::run_animation_callbacks(void*) + 276
9 libdispatch.dylib 0x186927184 _dispatch_client_callout + 16
10 libdispatch.dylib 0x1868d9190 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1044
11 CoreFoundation 0x186bd85e4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
12 CoreFoundation 0x186bd35d8 __CFRunLoopRun + 2004
13 CoreFoundation 0x186bd2adc CFRunLoopRunSpecific + 464
14 GraphicsServices 0x190b73328 GSEventRunModal + 104
15 UIKitCore 0x18ace063c UIApplicationMain + 1936
16 myAppName 0x100875110 main + 12 (AppDelegate.swift:12)
17 libdyld.dylib 0x186a5c360 start + 4
最佳答案
这些可能不是行号,而是内存地址。在该堆栈跟踪中的“function + x”列表中,它们都是 4 的倍数,也指向内存地址。发生这种情况的原因是 Apple 为 Swift 自动生成代码。通常,当您看到“+ something”时,通常意味着崩溃是在设备上被符号化的,它能够拾取那些生成的代码行。
此链接指向 Apple's technical docs可能有更多信息,在“确定崩溃报告是否符号化”部分下提供堆栈跟踪示例。
关于ios - 在 crashlytics swift/ios 中具有非常大的行号值的 EXC_BREAKPOINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61556770/