iOS 在没有 dSYM 的情况下分析 .crash 数据

标签 ios iphone xcode xamarin app-store

正如您从标题中可以看出的那样,我陷入了困境,我的应用程序在执行特定测试后崩溃了。测试如下:

  1. 在 iPhone 7 上安装应用
  2. 将 iCloud 配置文件传输到 iPhone X
  3. 启动应用程序(应用程序将显示闪屏并失败)

我能够从 iPhoneX 恢复 .crash 数据,但是这些数据并不是很有用,因为所进行的调用都是十六进制的。我知道您可以尝试通过 atos 以及此 help link 中的其他工具来分析数据。然而,在大多数情况下,您似乎总是需要dSYM。我有用于发布应用程序的原始 .app 和 .ipa,但是构建计算机上没有 .dSYM 文件。 (我相信默认情况下 Apple 设置为在没有 dSYM 的情况下构建 DWARF)

有什么方法可以充分利用 .crash 文件中的数据吗?该文件完全没有符号化。

(顺便说一句,在进行 iCloud 传输后,避免应用程序在启动时崩溃的一种方法是从应用程序商店卸载并重新安装该应用程序。对于最终用户来说这并不有趣)

崩溃片段:

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

Application Specific Information:
abort() called

Filtered syslog:
None found
Thread 0 name:  tid_303  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x0000000183f202e8 __pthread_kill + 8
1   libsystem_pthread.dylib         0x0000000184039748 pthread_kill$VARIANT$armv81 + 360
2   libsystem_c.dylib               0x0000000183e8efbc abort + 140
3   MyApp                           0x0000000105ad4de8 0x104be8000 + 15650280

最佳答案

Is there any way I can put the data from my .crash file to good use without DSYM ?

不,这是不可能的。

DSYM文件存放了所有调试符号,通过它我们可以通过内存地址(在crash文件中)找到对应的函数名,从而导致crash。

关于iOS 在没有 dSYM 的情况下分析 .crash 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48291712/

相关文章:

ios - Swift UITableView 多行单元格

ios - URLSession 委托(delegate)函数totalBytesExpectedToWrite 始终返回-1

iphone - 弱链接 C 函数

ios - 如何回到 View Controller ?

ios - Objective - C 核心数据建模

ios - 通过按钮打开AppStore

ios - 每 x 天发送 iPad 应用程序以供审核(持续部署)

ios - 将项目从 swift 4 转换为 swift 5 时,类型 'ViewController' 的值错误没有成员 'keyboardDidShow(notification:)'

iOS 条码高效扫描仪

swift - 多个 SKLightNode 不能一起工作