iOS分析.crash数据没有dSYM

时间:2018-01-17 00:00:13

标签: ios iphone xcode xamarin app-store

正如您从标题中可以看出的那样,我处于一种棘手的情况,我的应用程序在执行特定测试后崩溃了。测试如下:

  1. 在iPhone 7上安装应用程序
  2. 将iCloud个人资料转移到iPhone X
  3. 启动应用程序(应用程序将显示启动画面并失败)
  4. 我能够从iPhoneX恢复.crash数据,但数据不是非常有用,因为正在进行的调用都是十六进制的。我知道您可以尝试通过 atos 以及此help link中的其他工具分析数据,但是对于大多数人来说,似乎总是需要 dSYM 案例。我有用于发布应用程序的原始.app和.ipa,但构建计算机上没有 .dSYM 文件。 (我相信默认情况下,Apple已设置为不使用dSYM构建DWARF)

    有什么办法可以很好地使用 .crash 文件中的数据?该文件完全不符合标准。

    (作为旁注,在执行iCloud传输后,在启动时退出应用程序崩溃的一种方法是从App Store卸载并重新安装应用程序。对最终用户来说并不好玩。)

    崩溃的片段:

    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
    

1 个答案:

答案 0 :(得分:1)

  

有没有办法可以在不使用DSYM的情况下将我的.crash文件中的数据好用?

不,这是不可能的。

DSYM文件存储了所有调试符号,通过它我们可以通过内存地址(在崩溃文件中)找到相应的函数名,这会导致崩溃。