在实际的开发过程中,我们的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信息符号表解析相关推荐

  1. iOS开发教程:Storyboard全解析-第二部分

    如果你想了解更多Storyboard的特性,那么你就来对了地方,下面我们就来接着上次的内容详细讲解Storyboard的使用方法. 在上一篇<iOS开发教程:Storyboard全解析-第一部分 ...

  2. Windows MSVC 符号表(.lib文件)(C++符号表解析)(符号表是如何产生的)(第四步:链接)

    核心思想: 由于不同的编译器采用不同的名字修饰方法,必然会导致由不同编译器编译产生的目标文件无法正常相互链接,这是导致不同编译器之间不能互操作的主要原因之一. 符号表的由来以及C++符号表解析 win ...

  3. android 地球坐标 火星坐标系,IOS开发入门之iOS开发火星坐标系与地球坐标系解析...

    本文将带你了解IOS开发入门iOS开发火星坐标系与地球坐标系解析,希望本文对大家学IOS有所帮助. iOS开发火星坐标系与地球坐标系解析. 在开发过程中,遇到一个问题,安卓和iOS传同样的经纬度给后台 ...

  4. Unity 之 安卓堆栈跟踪和日志工具 (Android Logcat | 符号表解析Bugly捕获)

    Unity 之 日志解析工具 Android Logcat 一,工具集成 1.1 注意事项 1.2 导入插件 二,连接设备 2.1 使用USB连接 2.2 无线连接 三,实用功能介绍 3.1 通用介绍 ...

  5. iOS开发~Crash优化

    一.概要 iOS App开发中和上线后,都会遇到程序异常退出的情况,导致崩溃的原因有很多,如果是在调试的过程中,可以通过设施断点或者打印关键信息的方式来进行调试,如果对于一些复杂模块非必现的异常崩溃, ...

  6. 黑马程序员—(iOS开发)C语言语法解析---(三)

    ------- iOS培训.PHP培训.android培训.java培训.期待与您交流! ---------- 了解: 1.关键字.标识符.注释: 2.常量.变量 3.进制 4.变量与内存 5.基本数 ...

  7. 服务器返回文件格式,iOS开发--服务器返回的数据解析

    App要与服务器交互才能达到数据更新和获取资源 那么: 服务器返回客户端的数据,一般返回两种格式:JSON格式.XML格式 (文件下载除外) 什么是JSON 轻量级数据格式,一般用于数据交互 JSON ...

  8. IOS开发之——网络-视频播放-JSON解析(11)

    一 概述 解析JSON结果到OC类 通过视频播放地址构成视频播放器并播放显示 网络请求,返回视频播放列表,点击列表中的一项进行播放 二 Main.storyboard 三 解析JSON结果到OC类 3 ...

  9. IOS开发--第二阶段--通讯--JSON系统解析

    JSON系统解析: 1,创建请求路径和URL: 2,根据URL构建请求 ,如果是POST 使用NSMutableURLRequest , NS可变的URL请求: NSMutableURLRequest ...

最新文章

  1. javascript 閉包
  2. os和sys模块的常用方法
  3. MySQL数据类型简介
  4. 引用程序集没有强名称解决办法
  5. Windows 系统管理
  6. RabbitMQ introduction
  7. ⚡关于Eastmount博客「网络安全自学篇」系列重要通知!!!⚡
  8. Using KernelShark to analyze the real-time scheduler【转】
  9. rpn风险等级评价准则_2019一建经济学习重点:技术方案经济效果评价
  10. 使用ByteArrayOutputStream解决IO乱码问题的踩坑记录
  11. 商场收银系统服务器安装在哪里,收银系统安装教程
  12. The size of tensor a (4) must match the size of tensor b (2) at non-singleton dimension 1
  13. 移动端webscoket连接失败---code1006
  14. 计算机刷新定义,刷新计数器
  15. Android-代码设置TextView字体加粗或者不加粗
  16. SAP License:SAP软件作用是什么
  17. linux空间可用的iusered,从Linux小白到大牛——与狼共舞的日子7
  18. 龙格现象及分段线性插值
  19. 留不住用户 FireFox中国市场占有率下跌8.6%
  20. matlab 伯德图 横坐标步长_使用MATLAB的m函数画伯德图,设置显示横坐标为HZ

热门文章

  1. 如何从cdkeys.com购买NS游戏?
  2. jpa @Transient
  3. cmd 删除需要权限的文件夹
  4. EDM营销之B2C企业邮件营销内容策略
  5. 2023年软件测试学什么?需要懂代码?经常加班吗?--测试老司机写给迷茫的你
  6. 腾讯百度一次面试题和经历
  7. 一年只一次,不点悔一年!
  8. 苹果cms V10模板 pc端绿色大气电影模板
  9. Excel中数据对比
  10. ACM-Hdu 一个人的旅行