• Xcode崩溃日志分析工具symbolicatecrash用法


    1.什么是symbolicatecrash?

    symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的一堆地址替换成代码相应位置。

    2.crash现象

    1.当项目上线之后,捕捉线上crash方法之一。

    当拿到手机后看到的device log 是这样的 ,只有crash的函数的地址,没有办法定位到具体问题再哪里。

    我们需要准备:

    1.应用的.dSYM文件(路径:/Users/用户名/Library/Developer/Xcode/Archives)

    2.工具symbolicatecrash:(终端:find /Applications/Xcode.app -name symbolicatecrash -type f  会把symbolicatecrash的路径打印出来,把他复制一个新建文件夹中(例如:CrashReport))

    3.手机中.crash 文件:(Window --> Devices and Simulators --> View Device Logs --- > 右键 export Log)

    把这三个放到新建的文件夹中CrashReport

    终端今天此文件路径:

    cd /Users/wangyan/Desktop/CrashReport

    export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

    ./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash(例如: ./symbolicatecrash ./M.crash ./Example.app.dSYM/ > symbol.crash  )

    此时文件夹中会出现 symbol.crash我们认识的crash文件。

    注:

    确定dSYM、app以及crash文件的关系

    每一个xx.app, xxx.app.dSYM文件都拥有相应的uuid,crash文件也有uuid,只有三者uuid一至才表明之三者可以解析出正确的日志文件。
    查看xx.app文件的uuid的方法,在terminal中输入命令:

    dwarfdump --uuid xxx.app/xxx (xxx工程名)

    查看xx.app.dSYM文件的uuid的方法,在terminal中输入命令:

    dwarfdump --uuid xxx.app.dSYM (xxx工程名)

    而.crash的uuid位于,crash日志中的Binary Images:中的第一行尖括号内。如:

    armv7 <8bdeaf1a0b233ac199728c2a0ebb4165>

  • 相关阅读:
    js 判断字符串中是否包含某个字符串
    MySQL批量更新数据
    js实现字符串切割并转换成对象格式保存到本地
    C#用openfiledialog文件和savefileDialog打开和保存文件
    C#中e.Cancel,e.Handled的区别与应用
    登录窗体与主窗体的关闭
    C#中WinForm程序退出方法技巧总结
    c# 如何获取项目的根目录
    C# Winform中WndProc 函数作用
    SqlDataAdapter.Update批量数据更新
  • 原文地址:https://www.cnblogs.com/miaomiaocat/p/11170672.html
Copyright © 2020-2023  润新知