GithubHelp home page GithubHelp logo

crashsymbol's Introduction

###我的博客

###背景 线上app崩溃后,拿到的crash文件只有地址和偏移地址,需要将crash文件或者ips文件符号化,才能定位出具体crash的位置。 脚本文件

####一、清单1【由测试组提供】 1、.crash或者.ips文件【必须】 2、*.app.dSYM文件【必须】 3、ipa【可选】 4、dSYMs文件夹,具体符号在这个文件夹里【必须】 /dSYMs/Contents/Resources/DWARF/文件,此文件大小大概为50多M 例如:/dSYMs/Contents/Resources/DWARF/5.0【文件名为5.0】

####二、清单2【开发】 1、crash_address.sh脚本【单个地址脚本】【必须】 2、crash_symbol.sh脚本【整个crash解析脚本】【必须】

####三、步骤 #####1、新建文件夹crash #####2、将清单1和清单2 拷贝到crash文件夹 #####3、确认清单 #####4、打开终端cd到crash文件夹

#####5、校验三个文件【.app(ipa解压)、.crash、.dSYM】的uuid,确保三个uuid一致。 (1)校验.app:

dwarfdump --uuid xx.app/xx (xx代表你的项目名)

(2)校验.dSYM:

dwarfdump --uuid xx.app.dSYM

(3)校验.crash:

crash文件内 Binary Images: 下面一行中 <> 内的地址就是该.crash文件的uuid(已去掉了分隔符“-”)

#####6、将原始.crash文件符号化: (1) 获取symbolicatecrash工具

  • 打开终端输入以下命令:
find /Applications/Xcode.app -name symbolicatecrash -type f
  • 我找到的路径是:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
  • 根据路径前往文件夹找到symbolicatecrash ,将其拷贝到crash文件夹

    (2) 终端输入:

sh crash_symbol.sh crash文件 dSYM文件

(3) 若出现"No symbolic information found",检查一下三个文件的uuid是否一样 #####7、将项目崩溃地址符号化: 经过第6步得到的结果,crashlog.crash文件,打开后如果发现系统库已经显示具体代码符号,而我们的代码仍然是地址。 则需要将具体地址符号化:

(1) 终端输入:

sh crash_address.sh dSYMs内文件夹DWARF下的app 地址1 地址2

例如:

sh crash_address.sh 5.0 0x102e58000 0x00000001036113dc 

说明:5.0是dSYMs内文件夹DWARF下的app 得到结果:

-[QLWebViewController webView:shouldStartLoadWithRequest:navigationType:] (in 5.0) (QLWebViewController.m:0)

####8、定位结束 参考链接: 1、对Crash文件,dSYM文件进行符号化 2、iOS中符号的那些事儿

----------------------------更新xcode13新版本的crash日志----------------------------------------- 新日志符号化脚本文件 ###新版本的crash日志 拿到的xcode13的crash日志,与之前的日志有所不同。如图所示: 杂乱无章,全选copy,json格式化后,如图所示 红框的地方就是我们app闪退的位置。 操作步骤如下: ####1、与之前一样,将crash文件、dSYM文件、脚本文件放在同一个文件夹temp里 ####2、终端cd进入temp文件夹 ####3、执行脚本文件

sh crash_symbol_13.sh ***.dSYM文件绝对路径 输出绝对路径 crash文件

例如:

sh crash_symbol_13.sh /Users/admin/Desktop/temp/dSYMs/wechat.app.dSYM /Users/admin/Desktop/temp  /Users/admin/Desktop/temp/crash.crash

####4、temp目录下,找到CrashLog.crash,打开,即可看到之前的"imageOffset": 507376等已符号化。 ####5、符号化结束

crashsymbol's People

Contributors

xy2jianjia avatar

Stargazers

 avatar Blake Blake avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.