简体   繁体   中英

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

I have some users testing my react-native app using TestFlight. 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. I have managed to open them with XCode, however, it is unclear what the actual error is. 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 . Here are the pertinent parts for Thread 6:

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

Last Exception Backtrace: 0 CoreFoundation
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
0x100b4f1a8 -[RCTExceptionsManager reportFatal:stack:exceptionId:suppressRedBox:] + 492 (RCTExceptionsManager.mm:76) 4 MyExampleApp003
0x100b4fbe0 -[RCTExceptionsManager reportException:] + 1536 (RCTExceptionsManager.mm:145) 5 CoreFoundation
0x193a158f4 invoking + 148 6 CoreFoundation
0x1938ecdf8 -[NSInvocation invoke] + 448 (NSForwarding.m:3389) 7
CoreFoundation 0x1938ed3cc -[NSInvocation invokeWithTarget:] + 80 (NSForwarding.m:3495) 8 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 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
0x00000001c090f414 __pthread_kill + 8 1 libsystem_pthread.dylib
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
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
libc++abi.dylib 0x00000001a806c06c std::terminate() + 44 (cxa_handlers.cpp:88) 8 libdispatch.dylib
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

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
x28: 0x0000000281996600 fp: 0x000000016fab63a0 lr: 0x00000001dce27b40 sp: 0x000000016fab6380 pc: 0x00000001c090f414 cpsr: 0x40000000 esr: 0x56000080 Address size fault

**Full crash log: **

Due to limits in allowable text size on SO, I am not able to post my full crash log as requested. I am therefore linking to it here: 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

As per request, here is my package.json file:

{
  "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: **

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 8 13.5.1
  • iPad (5th generation) 13.6.1
  • iPhone 11 14.2

In frame 2, RTCFatal is throwing an exception. 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...]

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.

One of the best crash reporters you could use is Sentry .

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.

Another option could be Firebase-crashlytics https://firebase.google.com/docs/crashlytics/get-started

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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