iOS开发crash信息符号表解析
在实际的开发过程中,我们的app如果出现crash情况,一般会通过bugly或者firebase等工具,上报到控制台,方便我们进行分析。但是有的时候也会存在一些crash信息没有上报,我们开发无法根据测试反馈的流程复现crash的情况。针对这种情况,只能让测试把手机打开一些功能,来方便我们定位问题。具体步骤如下:
共享iphone分析开关打开,这样有crash信息就会记录下来
如果有crash信息就有记录下来,可以点击【分析数据】这一行进去查看,具体如下:
可以选择某一个信息,进入然后分享出来。
接下来就可以进行crash信息的解析处理了。具体步骤如下:
需要准备的文件
1,导出的crash日志文件,后缀名修改为.crash
2, dSYM符号表文件
3,解析符号表的脚本Crash.sh
将这三个文件放在同一个文件夹内,并进入到这个文件夹下,然后在终端执行如下命令
sh Crash.sh aaa.crash bbb.app.dSYM
备注:aaa.crash指自己的crash名字,不要有和这个一样,bbb也是指自己的文件名字,不要求必须一样。
执行后截图如下:
可以看到生成了symbol.text文件。大家就可以进去看crash的详细信息了。注意:解析符号表时,Xcode的版本号一定要和打包时的版本号保持一致,另外这个解析符号表,也存在解析不全的情况,这个大家要有一定的心理预期。如果后续有更好的方法,会持续更新在在本文中。
Crash.sh脚本具体内容如下,大家可以直接复制使用
#!/bin/bashexport DEVELOPER_DIR=/Applications/XCode.app/Contents/Developerecho "----开始 第一个参数是crash路径 -----"symbolToolPath="./symbolicatecrash"
crashPath=""
dSYMPath=""if [ ! -f "$symbolToolPath" ]
thenecho "文件为特殊文件"symbolToolPath="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash"echo "symbolicatecrash工具的路径是为:"$symbolToolPathif [ -f "$symbolToolPath" ]then echo "symbolicatecrash工具存在(文件为普通文件)"elseecho "无法找到symbolicatecrash工具"fi
fifunction findFile(){crashPath=$(find . -name "*.crash")
}if [ -n "$1" ]
thencrashPath=$1echo "已传入crash文件路径:$crashPath"
elsefindFileecho "未传入crash文件路径,搜索同级目录下crash文件"
fiif [ ! -f "$crashPath" ]
thenecho "搜索失败,无法找到crash文件"exit
fidSYMPath=$(find . -name "*.dSYM" -print)
echo "找到的符号表路径:$dSYMPath"if [ ! -d $dSYMPath ]
thenecho "无法找到符号表dSYM文件"exit
fi# ./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash
$symbolToolPath $crashPath $dSYMPath > symbol.text
参考网址:https://www.jianshu.com/p/8dd447c625ff
iOS开发crash信息符号表解析相关推荐
- iOS开发教程:Storyboard全解析-第二部分
如果你想了解更多Storyboard的特性,那么你就来对了地方,下面我们就来接着上次的内容详细讲解Storyboard的使用方法. 在上一篇<iOS开发教程:Storyboard全解析-第一部分 ...
- Windows MSVC 符号表(.lib文件)(C++符号表解析)(符号表是如何产生的)(第四步:链接)
核心思想: 由于不同的编译器采用不同的名字修饰方法,必然会导致由不同编译器编译产生的目标文件无法正常相互链接,这是导致不同编译器之间不能互操作的主要原因之一. 符号表的由来以及C++符号表解析 win ...
- android 地球坐标 火星坐标系,IOS开发入门之iOS开发火星坐标系与地球坐标系解析...
本文将带你了解IOS开发入门iOS开发火星坐标系与地球坐标系解析,希望本文对大家学IOS有所帮助. iOS开发火星坐标系与地球坐标系解析. 在开发过程中,遇到一个问题,安卓和iOS传同样的经纬度给后台 ...
- Unity 之 安卓堆栈跟踪和日志工具 (Android Logcat | 符号表解析Bugly捕获)
Unity 之 日志解析工具 Android Logcat 一,工具集成 1.1 注意事项 1.2 导入插件 二,连接设备 2.1 使用USB连接 2.2 无线连接 三,实用功能介绍 3.1 通用介绍 ...
- iOS开发~Crash优化
一.概要 iOS App开发中和上线后,都会遇到程序异常退出的情况,导致崩溃的原因有很多,如果是在调试的过程中,可以通过设施断点或者打印关键信息的方式来进行调试,如果对于一些复杂模块非必现的异常崩溃, ...
- 黑马程序员—(iOS开发)C语言语法解析---(三)
------- iOS培训.PHP培训.android培训.java培训.期待与您交流! ---------- 了解: 1.关键字.标识符.注释: 2.常量.变量 3.进制 4.变量与内存 5.基本数 ...
- 服务器返回文件格式,iOS开发--服务器返回的数据解析
App要与服务器交互才能达到数据更新和获取资源 那么: 服务器返回客户端的数据,一般返回两种格式:JSON格式.XML格式 (文件下载除外) 什么是JSON 轻量级数据格式,一般用于数据交互 JSON ...
- IOS开发之——网络-视频播放-JSON解析(11)
一 概述 解析JSON结果到OC类 通过视频播放地址构成视频播放器并播放显示 网络请求,返回视频播放列表,点击列表中的一项进行播放 二 Main.storyboard 三 解析JSON结果到OC类 3 ...
- IOS开发--第二阶段--通讯--JSON系统解析
JSON系统解析: 1,创建请求路径和URL: 2,根据URL构建请求 ,如果是POST 使用NSMutableURLRequest , NS可变的URL请求: NSMutableURLRequest ...
最新文章
- javascript 閉包
- os和sys模块的常用方法
- MySQL数据类型简介
- 引用程序集没有强名称解决办法
- Windows 系统管理
- RabbitMQ introduction
- ⚡关于Eastmount博客「网络安全自学篇」系列重要通知!!!⚡
- Using KernelShark to analyze the real-time scheduler【转】
- rpn风险等级评价准则_2019一建经济学习重点:技术方案经济效果评价
- 使用ByteArrayOutputStream解决IO乱码问题的踩坑记录
- 商场收银系统服务器安装在哪里,收银系统安装教程
- The size of tensor a (4) must match the size of tensor b (2) at non-singleton dimension 1
- 移动端webscoket连接失败---code1006
- 计算机刷新定义,刷新计数器
- Android-代码设置TextView字体加粗或者不加粗
- SAP License:SAP软件作用是什么
- linux空间可用的iusered,从Linux小白到大牛——与狼共舞的日子7
- 龙格现象及分段线性插值
- 留不住用户 FireFox中国市场占有率下跌8.6%
- matlab 伯德图 横坐标步长_使用MATLAB的m函数画伯德图,设置显示横坐标为HZ