我有一个通过审核的生产应用,但在生产中崩溃了。我已将设备连接到Xcode,并复制了崩溃信息,并从Xcode检索了崩溃日志。问题是,我不了解该报告。对我来说完全是无稽之谈。例如,它不会告诉我应用程序崩溃的代码行。我的问题是,这是否是“未符号化”崩溃报告的示例?我什至在考虑弄清楚如何用符号表示崩溃报告之前,不知道有符号和非符号化的报告是什么样子。

根据Apple文档(Apple Docuemtnation, under Introduction section),因为我从xcode检索了崩溃报告,所以它应该在几秒钟后自动符号化?如果此报告带有符号,对我来说毫无意义。相当无益。

 Incident Identifier: 8CAEC9EB-016F-42DC-AEB7-DE0EC136F33A
 CrashReporter Key:   26676d619a8d0376d5040dfe66f618918964f4d4
 Hardware Model:      iPhone7,1
 Process:             mapdocuments [427]
 Path:
 /private/var/containers/Bundle/Application/AFB5062A-C2A8-4106- 8A28-5B0528918E2D/mapdocuments.app/mapdocuments
 Identifier:          com.xxxxx.mapdocuments
 Version:             13 (1)
 AppStoreTools:       10B63
 AppVariant:          1:iPhone7,1:12
 Code Type:           ARM-64 (Native)
 Role:                Non UI
 Parent Process:      launchd [1]
 Coalition:           com.xxxxx.mapdocuments [513]


 Date/Time:           2019-03-28 01:52:16.3749 +0000
 Launch Time:         2019-03-28 01:51:08.0437 +0000
 OS Version:          iPhone OS 12.1.4 (16D57)
 Baseband Version:    7.32.00
 Report Version:      104

 Exception Type:  EXC_CRASH (SIGABRT)
 Exception Codes: 0x0000000000000000, 0x0000000000000000
 Exception Note:  EXC_CORPSE_NOTIFY
 Triggered by Thread:  0

 Application Specific Information:
 abort() called

Last Exception Backtrace:
 0   CoreFoundation                 0x1a4531ea4
 __exceptionPreprocess + 228
 1   libobjc.A.dylib                0x1a3701a50
objc_exception_throw + 55
 2   CoreFoundation                 0x1a4438484 +[NSException
 raise:format:] + 115
 3   StoreKit                       0x1b860fc14 -[SKPaymentQueue
 addPayment:] + 675
 4   mapdocuments                   0x100e5c1e8 0x100dfc000 +
 393704
 5   mapdocuments                   0x100e65ddc 0x100dfc000 +
 433628
 6   UIKitCore                      0x1d16d2314 -[UIApplication
 sendAction:to:from:forEvent:] + 95
 7   UIKitCore                      0x1d115fd54 -[UIControl
 sendAction:to:forEvent:] + 79
 8   UIKitCore                      0x1d1160074 -[UIControl
 _sendActionsForEvents:withEvent:] + 439
 9   UIKitCore                      0x1d115f074 -[UIControl
 touchesEnded:withEvent:] + 567
 10  UIKitCore                      0x1d170ba6c -[UIWindow
 _sendTouchesForEvent:] + 2471
 11  UIKitCore                      0x1d170ccd0 -[UIWindow
 sendEvent:] + 3155
 12  UIKitCore                      0x1d16ebfcc -[UIApplication
 sendEvent:] + 339
 13  UIKitCore                      0x1d17bae38
 __dispatchPreprocessedEventFromEventQueue + 1619
 14  UIKitCore                      0x1d17bd830
 __handleEventQueueInternal + 4739
 15  UIKitCore                      0x1d17b6320
 __handleHIDEventFetcherDrain + 151
 16  CoreFoundation                 0x1a44c20e0
 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 23
 17  CoreFoundation                 0x1a44c2060
 __CFRunLoopDoSource0 + 87
 18  CoreFoundation                 0x1a44c1944
 __CFRunLoopDoSources0 + 175
 19  CoreFoundation                 0x1a44bc810 __CFRunLoopRun +
 1039
 20  CoreFoundation                 0x1a44bc0e0
 CFRunLoopRunSpecific + 435
 21  GraphicsServices               0x1a6735584 GSEventRunModal +
 99
 22  UIKitCore                      0x1d16d0c00 UIApplicationMain +
 211
 23  mapdocuments                   0x100e02884 0x100dfc000 + 26756
 24  libdyld.dylib                  0x1a3f7abb4 start + 3


 Thread 0 name:  Dispatch queue: com.apple.main-thread
 Thread 0 Crashed:
 0   libsystem_kernel.dylib         0x00000001a40c7104
 __pthread_kill + 8
 1   libsystem_pthread.dylib        0x00000001a4143020
 pthread_kill$VARIANT$mp + 380
 2   libsystem_c.dylib              0x00000001a401ed78 abort + 140
 3   libc++abi.dylib                0x00000001a36e8f78
 __cxa_bad_cast + 0
 4   libc++abi.dylib                0x00000001a36e9120
 default_unexpected_handler+ 8480 () + 0
 5   libobjc.A.dylib                0x00000001a3701e58
 _objc_terminate+ 28248 () + 124
 6   libc++abi.dylib                0x00000001a36f50fc
 std::__terminate(void (*)+ 57596 ()) + 16
 7   libc++abi.dylib                0x00000001a36f4cec _
 _cxa_rethrow + 144
 8   libobjc.A.dylib                0x00000001a3701c20
 objc_exception_rethrow + 44
 9   CoreFoundation                 0x00000001a44bc14c
 CFRunLoopRunSpecific + 544
 10  GraphicsServices               0x00000001a6735584
 GSEventRunModal + 100
  11  UIKitCore                         0x00000001d16d0c00
 UIApplicationMain + 212
 12  mapdocuments                   0x0000000100e02884 0x100dfc000
 + 26756
 13  libdyld.dylib                  0x00000001a3f7abb4 start + 4

在Xode中查看:

最佳答案

是的,这是未标记的崩溃日志。问题是对[-SKPaymentQueue addPayment:]的调用传递了错误的付款指针。以下是日志告诉您的内容:

异常类型:EXC_CRASH(SIGABRT)



特定于应用程序的信息:
abort()被调用

这些表明某些代码明确调用了一个函数来中止运行应用程序。发生这种情况的原因是,操作系统检测到某些错误数据已分配给某个功能,并且确定无法继续处理这些错误数据,因此唯一的选择是中止。
回溯显示了调用了哪些函数来中止:

Last Exception Backtrace:
 0   CoreFoundation                 0x1a4531ea4 __exceptionPreprocess + 228
 1   libobjc.A.dylib                0x1a3701a50 objc_exception_throw + 55
 2   CoreFoundation                 0x1a4438484 +[NSException raise:format:] + 115
 3   StoreKit                       0x1b860fc14 -[SKPaymentQueue addPayment:] + 675
 4   mapdocuments                   0x100e5c1e8 0x100dfc000 + 393704
 5   mapdocuments                   0x100e65ddc 0x100dfc000 + 433628
它们的 call 顺序相反。因此,mapdocuments应用程序或库中的某些代码被调用到StoreKit框架中,特别是-[SKPaymentQueue addPayment:]方法。该方法看到传入的值无效,并引发了异常。使用@try / @catch块未捕获到异常,因此操作系统中止了执行。
不幸的是,由于未提供符号,因此我们不知道调用-addPayment:的确切行以及错误的数据。但是,如果您构建了该应用程序,则应为其添加符号,并且我认为可以使用这些符号来表示崩溃日志。我自己还没有做。

关于ios - 如何通过连接到Xcode的设备了解ios Crash Report?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55389194/

10-09 16:18
查看更多