简体   繁体   English

了解 Testflight 崩溃报告 (iOS / React-Native / XCode)

[英]Understanding a Testflight Crash Report (iOS / React-Native / XCode)

I have some users testing my react-native app using TestFlight.我有一些用户使用 TestFlight 测试我的 react-native 应用程序。 For a couple of the users the app is crashing.对于几个用户来说,应用程序正在崩溃。 It does not crash for myself and another user.它不会为我自己和其他用户崩溃。 TestFlight provides crash reports, however, I am unsure how to view any meaningful information about them. TestFlight 提供崩溃报告,但是,我不确定如何查看有关它们的任何有意义的信息。 I have managed to open them with XCode, however, it is unclear what the actual error is.我已经设法用 XCode 打开它们,但是,尚不清楚实际错误是什么。 Below is a screenshot of what I am seeing:下面是我所看到的截图:

在此处输入图像描述

Is there something more that I need to do to see more details of this crash report?要查看此崩溃报告的更多详细信息,我还需要做些什么吗? Everything I look at seems overly cryptic.我所看到的一切似乎都过于神秘。 How do I decipher what the problem is?我如何破译问题所在?

A portion of my crash log:我的崩溃日志的一部分:

It looks like the app crashed on Thread 6 .看起来应用程序在Thread 6上崩溃了。 Here are the pertinent parts for Thread 6:以下是 Thread 6 的相关部分:

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Triggered by Thread: 6异常类型:EXC_CRASH (SIGABRT) 异常代码:0x0000000000000000, 0x0000000000000000 异常说明:EXC_CORPSE_NOTIFY 由线程触发:6

Last Exception Backtrace: 0 CoreFoundation最后异常回溯:0 CoreFoundation
0x193a10878 _ exceptionPreprocess + 220 (NSException.m:199) 1 0x193a10878 _ exceptionPreprocess + 220 (NSException.m:199) 1
libobjc.A.dylib 0x1a7f66c50 objc_exception_throw + 60 (objc-exception.mm:565) 2 MyExampleApp003 0x100ad26c8 RCTFatal + 668 (RCTAssert.m:145) 3 MyExampleApp003 libobjc.A.dylib 0x1a7f66c50 objc_exception_throw + 60 (objc-exception.mm:565) 2 MyExampleApp003 0x100ad26c8 RCTFatal + 668 (RCTAssert.m:145) 3 MyExampleApp003
0x100b4f1a8 -[RCTExceptionsManager reportFatal:stack:exceptionId:suppressRedBox:] + 492 (RCTExceptionsManager.mm:76) 4 MyExampleApp003 0x100b4f1a8 -[RCTExceptionsManager reportFatal:stack:exceptionId:suppressRedBox:] + 492 (RCTExceptionsManager.mm:76) 4 MyExampleApp003
0x100b4fbe0 -[RCTExceptionsManager reportException:] + 1536 (RCTExceptionsManager.mm:145) 5 CoreFoundation 0x100b4fbe0 -[RCTExceptionsManager 报告异常:] + 1536 (RCTExceptionsManager.mm:145) 5 核心基础
0x193a158f4 invoking + 148 6 CoreFoundation 0x193a158f4调用+ 148 6 CoreFoundation
0x1938ecdf8 -[NSInvocation invoke] + 448 (NSForwarding.m:3389) 7 0x1938ecdf8 -[NSInvocation 调用] + 448 (NSForwarding.m:3389) 7
CoreFoundation 0x1938ed3cc -[NSInvocation invokeWithTarget:] + 80 (NSForwarding.m:3495) 8 MyExampleApp003 CoreFoundation 0x1938ed3cc -[NSInvocation invokeWithTarget:] + 80 (NSForwarding.m:3495) 8 MyExampleApp003
0x100b024d8 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 460 (RCTModuleMethod.mm:584) 9 MyExampleApp003 0x100b024d8 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 460 (RCTModuleMethod.mm:584) 9 MyExampleApp003
0x100b0466c facebook::react::invokeInner(RCTBridge*, RCTModuleData*, unsigned int, folly::dynamic const&) + 244 (RCTNativeModule.mm:114) 10 MyExampleApp003 0x100b043d0 operator() + 44 (RCTNativeModule.mm:75) 11 MyExampleApp003 0x100b043d0 invocation function for block in facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int) + 88 (RCTNativeModule.mm:67) 12 libdispatch.dylib 0x19360324c _dispatch_call_block_and_release + 32 (init.c:1454) 13 libdispatch.dylib 0x193604db0 _dispatch_client_callout + 20 (object.m:559) 14 libdispatch.dylib 0x19360c10c _dispatch_lane_serial_drain + 580 (inline_internal.h:2548) 15 libdispatch.dylib 0x19360cc5c _dispatch_lane_invoke + 408 (queue.c:3862) 16 libdispatch.dylib 0x193616d78 _dispatch_workloop_worker_thread + 708 (queue.c:6601) 17 libsystem_pthread.dylib 0x100b0466c facebook::react::invokeInner(RCTBridge*, RCTModuleData*, unsigned int, folly::dynamic const&) + 244 (RCTNativeModule.mm:114) 10 MyExampleApp003 0x100b043d0 operator() + 44 (RCTNativeModule.mm:75) 11 MyExampleApp003 0x100b043d0 invocation function for block in facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int) + 88 (RCTNativeModule.mm:67) 12 libdispatch.dylib 0x19360324c _dispatch_call_block_and_release + 32 (init.c:1454 ) 13 libdispatch.dylib 0x193604db0 _dispatch_client_callout + 20 (object.m:559) 14 libdispatch.dylib 0x19360c10c _dispatch_lane_serial_drain + 580 (inline_internal.h:2548) 15 libdispatch.dylib 0x19360cc5c _dispatch_lane_invoke + 408 (queue.c:3862) 16 libdispatch.dylib 0x193616d78 _dispatch_workloop_worker_thread + 708 (queue.c:6601) 17 libsystem_pthread.dylib 0x1dce28804 _pthread_wqthread + 276 (pthread.c:2207) 18 libsystem_pthread.dylib 0x1dce2f75c start_wqthread + 8 0x1dce28804 _pthread_wqthread + 276 (pthread.c:2207) 18 libsystem_pthread.dylib 0x1dce2f75c start_wqthread + 8

and

Thread 6 name: Thread 6 Crashed: 0 libsystem_kernel.dylib线程 6 名称:线程 6 崩溃:0 libsystem_kernel.dylib
0x00000001c090f414 __pthread_kill + 8 1 libsystem_pthread.dylib 0x00000001c090f414 __pthread_kill + 8 1 libsystem_pthread.dylib
0x00000001dce27b40 pthread_kill + 272 (pthread.c:1388) 2 0x00000001dce27b40 pthread_kill + 272 (pthread.c:1388) 2
libsystem_c.dylib 0x000000019cd34b74 abort + 104 (abort.c:110) 3 libc++abi.dylib 0x00000001a806ccf8 abort_message + 132 (abort_message.cpp:76) 4 libc++abi.dylib libsystem_c.dylib 0x000000019cd34b74 中止 + 104 (abort.c:110) 3 libc++abi.dylib 0x00000001a806ccf8 abort_message + 104 (abort_c lib++a.c.c)
0x00000001a805de4c demangling_terminate_handler() + 308 (cxa_default_handlers.cpp:67) 5 libobjc.A.dylib 0x00000001a805de4c demangling_terminate_handler() + 308 (cxa_default_handlers.cpp:67) 5 libobjc.A.dylib
0x00000001a7f66f64 _objc_terminate() + 144 (objc-exception.mm:701) 6 libc++abi.dylib 0x00000001a806c0e0 std::__terminate(void (*)()) + 20 (cxa_handlers.cpp:59) 7 0x00000001a7f66f64 _objc_terminate() + 144 (objc-exception.mm:701) 6 libc++abi.dylib 0x00000001a806c0e0 std::__terminate(void (*)()) + 20 (cxa_handlers.cpp:59) 7
libc++abi.dylib 0x00000001a806c06c std::terminate() + 44 (cxa_handlers.cpp:88) 8 libdispatch.dylib libc++abi.dylib 0x00000001a806c06c std::terminate() + 44 (cxa_handlers.cpp:88) 8 libdispatch.dylib
0x0000000193604dc4 _dispatch_client_callout + 40 (object.m:562) 9 0x0000000193604dc4 _dispatch_client_callout + 40 (object.m:562) 9
libdispatch.dylib 0x000000019360c10c _dispatch_lane_serial_drain + 580 (inline_internal.h:2548) 10 libdispatch.dylib 0x000000019360cc5c _dispatch_lane_invoke + 408 (queue.c:3862) 11 libdispatch.dylib 0x0000000193616d78 _dispatch_workloop_worker_thread + 708 (queue.c:6601) 12 libsystem_pthread.dylib 0x00000001dce28804 _pthread_wqthread + 276 (pthread.c:2207) 13 libsystem_pthread.dylib 0x00000001dce2f75c start_wqthread + 8 libdispatch.dylib 0x000000019360c10c _dispatch_lane_serial_drain + 580 (inline_internal.h:2548) 10 libdispatch.dylib 0x000000019360cc5c _dispatch_lane_invoke + 408 (queue.c:3862) 11 libdispatch.dylib 0x0000000193616d78 _dispatch_workloop_worker_thread + 708 (queue.c:6601) 12 libsystem_pthread.dylib 0x00000001dce28804 _pthread_wqthread + 276 (pthread.c:2207) 13 libsystem_pthread.dylib 0x00000001dce2f75c start_wqthread + 8

and

Thread 6 crashed with ARM Thread State (64-bit): x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000 x4: 0x000000016fab5e90 x5: 0x000000016fab6440 x6: 0x000000000000006e x7: 0x0000000000000700 x8: 0x00000000000005b9 x9: 0x5cfc9b6c2f3b39f6 x10: 0x0000000000000002 x11: 0x0000000000000003 x12: 0x0000000000000000 x13: 0x0000000000000001 x14: 0x0000000000000010 x15: 0x0000000000000033 x16: 0x0000000000000148 x17: 0x000000016fab7000 x18: 0x0000000000000000 x19: 0x0000000000000006 x20: 0x0000000000009e13 x21: 0x000000016fab70e0 x22: 0x00000001f3188380 x23: 0x0000000000000000 x24: 0x0000000000000114 x25: 0x000000016fab70e0 x26: 0x0000000281996600 x27: 0x0000000000000000 Thread 6 crashed with ARM Thread State (64-bit): x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000 x4: 0x000000016fab5e90 x5: 0x000000016fab6440 x6: 0x000000000000006e x7: 0x0000000000000700 x8: 0x00000000000005b9 x9: 0x5cfc9b6c2f3b39f6 x10: 0x0000000000000002 x11: 0x0000000000000003 x12 : 0x0000000000000000 x13: 0x0000000000000001 x14: 0x0000000000000010 x15: 0x0000000000000033 x16: 0x0000000000000148 x17: 0x000000016fab7000 x18: 0x0000000000000000 x19: 0x0000000000000006 x20: 0x0000000000009e13 x21: 0x000000016fab70e0 x22: 0x00000001f3188380 x23: 0x0000000000000000 x24: 0x0000000000000114 x25: 0x000000016fab70e0 x26: 0x0000000281996600 x27: 0x0000000000000000
x28: 0x0000000281996600 fp: 0x000000016fab63a0 lr: 0x00000001dce27b40 sp: 0x000000016fab6380 pc: 0x00000001c090f414 cpsr: 0x40000000 esr: 0x56000080 Address size fault x28: 0x0000000281996600 fp: 0x000000016fab63a0 lr: 0x00000001dce27b40 sp: 0x000000016fab6380 pc: 0x00000001c090f414 cpsr: 0x4000000008 esr 大小

**Full crash log: ** **完整的崩溃日志:**

Due to limits in allowable text size on SO, I am not able to post my full crash log as requested.由于 SO 上允许的文本大小有限制,我无法按要求发布完整的崩溃日志。 I am therefore linking to it here: https://paste.ee/p/0uokD#2OQirRwFCrlTAzGMrq8vd90cD2ThlBXk .因此,我在这里链接到它: https://paste.ee/p/0uokD#2OQirRwFCrlTAzGMrq8vd90cD2ThlBXk Should something useful in the full crashlog be useful to solving the problem I will post the pertinent details here.如果完整崩溃日志中有用的内容对解决问题有用,我将在此处发布相关详细信息。

My package.json我的 package.json

As per request, here is my package.json file:根据要求,这是我的 package.json 文件:

{
  "name": "MySuperApp",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "@react-native-community/masked-view": "^0.1.10",
    "@react-navigation/native": "^5.8.10",
    "@react-navigation/stack": "^5.12.8",
    "react": "16.13.1",
    "react-native": "0.63.3",
    "react-native-gesture-handler": "^1.9.0",
    "react-native-reanimated": "^1.13.2",
    "react-native-safe-area-context": "^3.1.9",
    "react-native-screens": "^2.15.0",
    "react-native-size-matters": "^0.3.1",
    "react-native-sound": "^0.11.0"
  },
  "devDependencies": {
    "@babel/core": "^7.8.4",
    "@babel/runtime": "^7.8.4",
    "@react-native-community/eslint-config": "^1.1.0",
    "babel-jest": "^25.1.0",
    "babel-plugin-transform-remove-console": "^6.9.4",
    "eslint": "^6.5.1",
    "jest": "^25.1.0",
    "metro-react-native-babel-preset": "^0.59.0",
    "react-test-renderer": "16.13.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

** Models and iOS versions: ** ** 型号和 iOS 版本:**

So far it seems to be crashing for everyone that is testing.到目前为止,对于所有正在测试的人来说,它似乎都在崩溃。 It is very intermittent though and mainly seems to be crashing when audio clips are clicked on.虽然它非常断断续续,主要是在单击音频剪辑时似乎崩溃了。 Though it only happens every so often:虽然它只是经常发生:

  • iPhone X 14.2 iPhone X 14.2
  • iPhone 8 13.5.1 iPhone 8 13.5.1
  • iPad (5th generation) 13.6.1 iPad(第5代)13.6.1
  • iPhone 11 14.2 iPhone 11 14.2

In frame 2, RTCFatal is throwing an exception.在第 2 帧中, RTCFatal正在引发异常。 It's not caught, that's technically why the app stops.它没有被抓住,这就是应用程序停止的技术原因。

The picture you've pasted tells me it's something to do with facebook::react::invokeInnex... , which is calling [RCTModuleMethod invok...]您粘贴的图片告诉我这与facebook::react::invokeInnex... ,它正在调用[RCTModuleMethod invok...]

But why is the exception thrown?但是为什么会抛出异常? Open the crash log as a text file, look near the top for messages about the contents of the exception.以文本文件的形式打开崩溃日志,在顶部附近查看有关异常内容的消息。 That's how you'll get closer to understanding what's going on.这就是你如何更接近了解正在发生的事情的方式。

To debug errors like this you should consider adding a crash reporter with a full error log for both native errors and React Native errors.要调试这样的错误,您应该考虑添加一个崩溃报告器,其中包含本机错误和 React Native 错误的完整错误日志。

One of the best crash reporters you could use is Sentry .您可以使用的最好的崩溃报告器之一是Sentry

https://docs.sentry.io/platforms/react-native/ https://docs.sentry.io/platforms/react-native/

With that you have also the possibility to add breadcrumbs and monitor releases.有了它,您还可以添加面包屑和监控版本。

Sentry allows integration with console.error etc and you could also send report with the errors you catch in the app. Sentry 允许与 console.error 等集成,您还可以发送包含您在应用程序中捕获的错误的报告。

Another option could be Firebase-crashlytics https://firebase.google.com/docs/crashlytics/get-started另一种选择可能是 Firebase-crashlytics https://firebase.google.com/docs/crashlytics/get-started

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM