美文网首页iOS知识收录iOS开发指南iOS 砖家纪实录
Xcode崩溃日志分析工具symbolicatecrash用法

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

作者: a18bbfaeae63 | 来源:发表于2015-02-09 12:48 被阅读17524次
    老规矩

    什么是symbolicatecrash


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

    为什么要用symbolicatecrash


    开发者调试错误只需要有真机,并
    且连接到xcode上,就可以跟踪发现错了。
    但是如果你的APP不是安装在你自己的真机上,比如你的APP发布到App Store(客户下载后你如何跟踪你的APP在他们的机器上?)这时候就要用到symbolicatecrash。
    当一款APP软件在IOS设备上崩溃的时候,一份“crash report”将会自动创建并且存储在设备上。crash report描述了APP崩溃的日志。在大多数情况下,包括对每个线程执行一个完整的堆栈跟踪,查看该日志对于APP崩溃调试非常有用。

    如何查看iphone上的崩溃日志


    // ios8之前
    设置
    通用
    关于本机
    诊断与用量
    诊断与用量数据

    // iOS 8
    设置
    隐私
    诊断与用量
    诊断与用量数据

    如何同步设备日志到我们的mac上


    如果是其他用户并且是APP Store下的APP
    需要用户在'如何查看iphone上的崩溃日志'中,将《自动发送》开启,打开《与应用开发者共享》,这样用户的APP崩溃后,会提示发送崩溃日志到开发者,开发者就可以在iTunes Connect中下载这些崩溃日志。
    如果是手中的真机
    直接将IPHONE连接到iTunes,打开xcode->window->devices,导出你需要的崩溃日志即可

    导入步骤

    如何使用symbolicatecrash分析崩溃日志


    Step 1:在你的MAC桌面创建一个新文件夹,并且命名为"CrashReport"

    Step 2:打开前往应用程序,找到 Xcode 应用程序, 右击它选中 "显示包内容" ,之后根据下面提供的路径

    Xcode6.0之前:
    "Contents->Developer->Platforms->iPhoneOS.platform->Developer->Library->PrivateFrameworks->DTDeviceKit.framework->Versions->A->Resources"

    OR

    "Contents->Developer->Platforms->iPhoneOS.platform->Developer->Library->PrivateFrameworks->DTDeviceKitBase.framework->Versions->A->Resources"

    Xcode6.0之后
    改成 "Contents/SharedFrameworks"

    实在找不到可以打开终端输入 find /Applications/Xcode.app -name symbolicatecrash -type f ,然后终端会返回这个文件的路径

    只要找到"symbolicatecrash" 文件, 复制然后粘贴到刚才创建的 "CrashReport" 文件夹里面.

    Step 3: 从Xcode Archive的二进制文件中找到.dSYM文件和.app文件拷贝到刚才创建的 "CrashReport" 文件夹里面.

    1.png 2.png 3.png

    Step 4:打开终端进入CrashReport文件夹,依次输入以下命令行:
    cd /Users/username/Desktop/CrashReport

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

    ./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash
    这时候终端将会进行处理......
    处理结果是生成一个新的文件symbol.crash。然后打开这个文件。
    你就会看到日志跟我们调试APP的控制台输出的内容一样了!

    你应该看到的是这样的

    have fun


    --EOF--
    若无特别说明,本站文章均为原创,转载请保留链接,谢谢

    相关文章

      网友评论

      • 哎中文不艾汉语:楼主我用你的方法,生成了symbol.crash文件,但是打开是个空白的文件呢
      • 悠闲自在的蜗牛:这文章跟2014年的一模一样
      • 018789f3c193:symbolicatecrash工具咯,本人用的Xcode8,路径为:




        /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

        xcode8 symbolicatecrash 路径

      • 小明君:6666 学习了,不过大神能不能讲的再深入一点
      • wuyangLi:感觉.app没啥用啊 只有.app.dSYM用到了
      • iOS_愛OS:谢谢楼主,刚刚看了之后 多试了几次终于成功了
      • 阿尔法代码狗:楼主在不,
        :sweat:
      • a706aa61f4d8:我怎么在Contents/SharedFrameworks 下找不到symbolicateCrash 文件呢,大神。
        iOS_愛OS:@D0ME 终端 用这个命令 find /Applications/Xcode.app -name symbolicatecrash -type f
      • Sanchain:现在新的Xcode可以符号化Crash了吧
        青葱烈马:@Sanchain 这个crash 文件怎么拿?
        Sanchain:@青葱烈马 拿到crash文件就可以定位到哪个类,哪个方法里了
        青葱烈马:@Sanchain 你好, 利用 Xcode 怎么符号化 Crash?
      • 纪宝宝:谢谢楼主哈,之前公司人刚教我怎么解析,然后给忘了,看到楼主的文章才回忆起来,三克油 :blush:
      • cd5a2582d1e2:日志为空啊 ???
        iOS_愛OS:@冰季天下 你操作有误
      • blue_man:说一样的也是sb。不过还是看不懂~~
        iOS_愛OS:@blue_man 还好,百度下,几分钟就懂了
      • 木木攻城之旅:我执行了之后 生成的文件跟导出的crash一摸一样 还是看不懂呢
        纪宝宝:@Casablanca1Q84S 他给的步骤没有问题,是可以解析的
        如果解析出来的crash一模一样,说明你解析失败了,我碰到一次,后来问了公司其他人知道原因大概是这样的:
        你的.crash报告,应该和你打包的产生崩溃的那个项目版本保持一致的,也就是你第一次打包产生的.crash,然后你又打包了,然后这时候你导出的.dsym是你第二次打包的dsym。两次不对应,导致解析失败
        Casablanca1Q84S:@攻城人员 我也是。。。骗子
      • 春花秋月2020:没用的,我的执行出来也是空的,但是确实奔溃了。
      • wendyqq:楼主这里export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer多了一个双引号
        a18bbfaeae63:@wendyqq updated
      • redye:终于找到一个可执行的崩溃日志符号化了,但是我符号化出来的是空文件 ╮(╯▽╰)╭
      • 人呆木水:赞一个!

      本文标题:Xcode崩溃日志分析工具symbolicatecrash用法

      本文链接:https://www.haomeiwen.com/subject/ccljxttx.html