使用symbolicatecrash工具符号化Crash日志

工具,日志,symbolicatecrash · 浏览次数 : 37

小编点评

**打包上线或测试APP崩溃符号化教程** **步骤 1:查找符号化工具** 使用以下命令在终端中搜索符号化工具: ```sh find /Applications/Xcode.app/Contents -name symbolicatecrash -type f ``` **步骤 2:添加环境变量** 设置环境变量 `DEVELOPER_DIR`,指向 Xcode 的安装目录。 ```sh export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer ``` **步骤 3:准备符号化文件** 将崩溃日志文件 `crash.crash` 和 `Dsym` 文件放到同一文件夹下。 **步骤 4:确认崩溃日志文件和 Dsym 文件相匹配** 使用 `dwarfdump` 命令比较崩溃日志文件中的 UUID 和 `Dsym` 文件的 UUID。 **步骤 5:执行符号化** 运行以下命令,其中 `CrashName.crash` 是崩溃文件的名称,`Appname.app.dSYM` 是 Xcode 项目的 DSYM 文件路径。 ```sh ./symbolicatecrash CrashName.crash AppName.app.dSYM > result.crash  ``` **步骤 6:保存符号化结果** 将符号化后的结果文件命名为 `result.crash`,并将它保存到 `~/Desktop` 下。 **步骤 7:使用符号化结果** 确保 `result.crash` 和 `symbolate-tool` 在您的系统中可用。可以使用 `symbolate-tool` 命令来使用符号化结果。

正文

对于打包上线的APP,或者打包测试的APP,出现了崩溃并不能方便的把手机链接到电脑使用XCode自动符号化,此时手动符号化就是重要的选项。

1.查找符号化工具symbolicatecrash
find /Applications/Xcode.app -name symbolicatecrash -type f
2.添加环境变量
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
3.把Dsym文件,crash文件,symbolicatecrash文件放到桌面同一个文件夹下
4.确认当前崩溃.crash文件与拿到的Dsym文件是否属于同一个App版本
获取符号文件的UUID: dwarfdump --uuid dSYM文件路径
对比崩溃日志中的UUID。 在崩溃.crash文件Binary Images:段中做对比。
5.执行符号化
./symbolicatecrash CrashName.crash AppName.app.dSYM > result.crash
 
脚本如下:
#!/bin/sh

# 使用方式:sh _symbolCrash.sh CrashName.crash路径 AppName.app.dSYM路径
# 保存外部传参
paramNum=$#
crashPM1=$1
symbolPM2=$2
readonly location=`pwd`
tempPath=""

#1.增加环境变量
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

#2.查询符号化工具symbolicatecrash
tool=`find /Applications/Xcode.app/Contents -name symbolicatecrash -type f`
echo "查询到符号工具路径为:\n $tool"

#3.查询崩溃文件中UUID
uuid=`dwarfdump --uuid $symbolPM2`
echo "DSYM文件中UUID为:\n ${uuid}"

#4.符号化结果, crash文件路径 symbol符号路径先后顺序不能变
rm ~/Desktop/Result.crash
${tool} $crashPM1 $symbolPM2 > ~/Desktop/Result.crash

open ~/Desktop/Result.crash
使用方法:
进入到脚本所在的目录
打开终端,在终端输入脚本指令: sh _symbolCrash.sh
然后依次拖入Crash文件,Dsym文件到终端
点击enter, 等待输出结果。
 
 
 

与使用symbolicatecrash工具符号化Crash日志相似的内容:

使用symbolicatecrash工具符号化Crash日志

对于打包上线的APP,或者打包测试的APP,出现了崩溃并不能方便的把手机链接到电脑使用XCode自动符号化,此时手动符号化就是重要的选项。 1.查找符号化工具symbolicatecrash find /Applications/Xcode.app -name symbolicatecrash -t

使用Cloudflare Worker加速docker镜像

前言 开发者越来越难了,现在国内的docker镜像也都️了,没有镜像要使用docker太难了,代理又很慢 现在就只剩下自建镜像的办法了 GitHub上有开源项目可以快速搭建自己的镜像库,不过还是有点麻烦,还好Cloudflare暂时还活着‍ 本文记录一下使用 Cloudf

使用C#/.NET解析Wiki百科数据实现获取历史上的今天

创建一个webapi项目做测试使用。 创建新控制器,搭建一个基础框架,包括获取当天日期、wiki的请求地址等 创建一个Http请求帮助类以及方法,用于获取指定URL的信息 使用http请求访问指定url,先运行一下,看看返回的内容。内容如图右边所示,实际上是一个Json数据。我们主要解析 大事记 部

Pybind11和CMake构建python扩展模块环境搭建

使用pybind11的CMake模板来创建拓展环境搭建 从Github上下载cmake_example的模板,切换分支,并升级pybind11子模块到最新版本 拉取pybind11使用cmake构建工具的模板仓库 git clone --recursive https://github.com/mr

说说RabbitMQ延迟队列实现原理?

使用 RabbitMQ 和 RocketMQ 的人是幸运的,因为这两个 MQ 自身提供了延迟队列的实现,不像用 Kafka 的同学那么苦逼,还要自己实现延迟队列。当然,这都是题外话,今天咱们重点来聊聊 RabbitMQ 延迟队列的实现原理,以及 RabbitMQ 实现延迟队列的优缺点有哪些? 很多人

使用FModel提取游戏资产

目录前言FModel简介FModel安装FModel使用初次使用资产预览资产导出附录dumperDumper-7生成usmap文件向游戏中注入dll 前言 这篇文章仅记录我作为初学者使用FModel工具提取某款游戏模型的过程。 FModel简介 FModel是一个开源软件,可以用于查看和提取UE4-

使用GSAP制作动画视频

GSAP 3Blue1Brown给我留下了深刻印象。利用动画制作视频,内容简洁,演示清晰。前两天刚好碰到一件事,我就顺便学习了一下怎么用代码做动画。 以javascrip为例,有两个动画引擎,GSAP和Animajs。由于网速的原因,询问了GPT后,我选择了GSAP来制作我的第一个动画视频。 制作动

使用ML.NET训练一个属于自己的图像分类模型,对图像进行分类就这么简单!

前言 今天大姚给大家分享一个.NET开源、免费、跨平台(支持Windows、Linux、macOS多个操作系统)的机器学习框架:ML.NET。并且本文将会带你快速使用ML.NET训练一个属于自己的图像分类模型,对图像进行分类。 ML.NET框架介绍 ML.NET 允许开发人员在其 .NET 应用程序

使用libzip压缩文件和文件夹

简单说说自己遇到的坑: 分清楚三个组件:zlib、minizip和libzip。zlib是底层和最基础的C库,用于使用Deflate算法压缩和解压缩文件流或者单个文件,但是如果要压缩文件夹就很麻烦,主要是不知道如何归档,在zip内部形成对应的目录。这时就需要用更高级别的库,也就是minizip或li

使用gzexe加密shell脚本

使用 gzexe 加密 shell 脚本是一个相对简单的过程。以下是具体的步骤: 编写你的 shell 脚本:首先,你需要有一个 shell 脚本文件,比如 myscript.sh。 确保脚本可执行:使用 chmod 命令确保你的脚本文件是可执行的: chmod +x myscript.sh 使用