【问题标题】:Understanding a Testflight Crash Report (iOS / React-Native / XCode)了解 Testflight 崩溃报告(iOS / React-Native / XCode)
【发布时间】:2021-03-23 10:56:27
【问题描述】:

我有一些用户使用 TestFlight 测试我的 react-native 应用程序。对于几个用户来说,该应用程序正在崩溃。它不会为我自己和其他用户崩溃。 TestFlight 提供崩溃报告,但是,我不确定如何查看有关它们的任何有意义的信息。我已经设法用 XCode 打开它们,但是,目前还不清楚实际错误是什么。下面是我看到的截图:

要查看此崩溃报告的更多详细信息,我还需要做些什么吗?我所看到的一切似乎都过于神秘。如何破译问题所在?

我的崩溃日志的一部分:

看起来应用程序在Thread 6 上崩溃了。以下是线程 6 的相关部分:

异常类型:EXC_CRASH (SIGABRT) 异常代码: 0x0000000000000000, 0x0000000000000000 异常说明: EXC_CORPSE_NOTIFY 由线程触发:6

最后一个异常回溯:0 CoreFoundation
0x193a10878 _异常预处理 + 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 报告致命:堆栈:exceptionId:suppressRedBox:] + 492 (RCTExceptionsManager.mm:76) 4 MyExampleApp003
0x100b4fbe0-[RCTExceptionsManager 报告异常:] + 1536 (RCTExceptionsManager.mm:145) 5 核心基础
0x193a158f4 调用
+ 148 6 CoreFoundation
0x1938ecdf8 -[NSInvocation 调用] + 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*, 无符号整数,愚蠢::动态 const&) + 244 (RCTNativeModule.mm:114) 10 MyExampleApp003 0x100b043d0 运算符()+ 44 (RCTNativeModule.mm:75) 11 MyExampleApp003 0x100b043d0 块的调用函数 facebook::react::RCTNativeModule::invoke(unsigned int, 愚蠢::动态&&,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

线程 6 名称:线程 6 崩溃:0 libsystem_kernel.dylib
0x00000001c090f414 __pthread_kill + 8 1 libsystem_pthread.dylib
0x00000001dce27b40 pthread_kill + 272 (pthread.c:1388) 2
libsystem_c.dylib 0x000000019cd34b74 中止 + 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

线程 6 因 ARM 线程状态(64 位)而崩溃: 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: 0x00000000000000000 x19: 0x0000000000000006 x20: 0x0000000000009e13 x21: 0x000000016fab70e0 x22: 0x00000001f3188380 x23: 0x00000000000000000 x24: 0x0000000000000114 x25: 0x000000016fab70e0 x26: 0x0000000281996600 x27: 0x0000000000000000
x28: 0x0000000281996600 fp: 0x000000016fab63a0 lr: 0x00000001dce27b40 sp: 0x000000016fab6380 pc: 0x00000001c090f414 cpsr: 0x40000000 esr: 0x56000080 地址大小错误

**完整的崩溃日志:**

由于 SO 上允许的文本大小有限制,我无法按要求发布完整的崩溃日志。因此,我在这里链接到它:https://paste.ee/p/0uokD#2OQirRwFCrlTAzGMrq8vd90cD2ThlBXk。如果完整崩溃日志中的有用内容对解决问题有用,我将在此处发布相关详细信息。

我的 package.json

根据要求,这是我的 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"
  }
}

** 机型和 iOS 版本:**

到目前为止,对于所有正在测试的人来说,它似乎都崩溃了。虽然它非常断断续续,主要是在单击音频剪辑时似乎崩溃了。虽然它只是偶尔发生:

  • iPhone X 14.2
  • iPhone 8 13.5.1
  • iPad(第五代)13.6.1
  • iPhone 11 14.2

【问题讨论】:

  • 需要更多信息。请张贴崩溃报告的前 100 行。 (或整个事情,以保存重新询问)
  • @mr.fixit 请查看我帖子底部的新链接。
  • @kojow7 你能添加你的package.json吗
  • @MuhammadNuman 我已经添加了我的 package.json
  • @kojow7 你能帮我确认一下崩溃的设备有 13 个 ios 吗?

标签: ios react-native testflight crash-reports


【解决方案1】:

要调试此类错误,您应该考虑添加崩溃报告器,其中包含原生错误和 React Native 错误的完整错误日志。

您可以使用的最好的崩溃报告器之一是 Sentry

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

您还可以添加面包屑和监控版本。

Sentry 允许与 console.error 等集成,您还可以发送包含您在应用程序中捕获的错误的报告。

另一个选项可能是 Firebase-crashlytics https://firebase.google.com/docs/crashlytics/get-started

【讨论】:

    【解决方案2】:

    在第 2 帧中,RTCFatal 正在引发异常。它没有被捕获,这就是应用程序停止的技术原因。

    您粘贴的图片告诉我,它与 facebook::react::invokeInnex... 有关,它正在调用 [RCTModuleMethod invok...]

    但是为什么会抛出异常呢?以文本文件的形式打开崩溃日志,在顶部附近查看有关异常内容的消息。这样您就可以更接近了解正在发生的事情。

    【讨论】:

    • 查看文本文件,它看起来像是在线程 6 中发生的,可能是“地址大小错误”。我不确定这意味着什么,或者我会在实际代码中寻找答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多