性能优化03.1:bugly搜集Crash
Bugly 介绍
为了能够快速并准确的定位用户 App
发生 Crash
的代码位置,Bugly
使用 符号表文件
对发生 Crash
的程序 堆栈
进行 解析和还原
举例:
Bugly 上传方式
Bugly
已不再支持直接上传dSYM文件,需要下载工具包手动上传
本文主要介绍
下载工具包手动上传
安装java运行环境
- 终端查看是否已安装
1 | zhangjian@zhangjiandeMBP ~ % java -version |
上面的显示表示已安装
- 未安装的情况如下:
到 Java官网 下载 jdk
,如下图:
下载完成之后打开 dmg
,安装、一路下一步即可安装成功。
在终端输入 java -version
可以查看 java
版本,如果输出信息和上面类似,表示安装成功
获取 dSYM
文件
什么是
dSYM
文件?在
iOS
平台中,dSYM
文件是指具有调试信息的目标文件
,文件名通常为xxx.app.dSYM
【注】:为了方便找回
Crash
对应的dSYM文件
和还原堆栈
,建议每次构建或发布App版本
时,备份好dSYM文件
获取
dSYM
方式
我们可以配置 Edit Scheme -> Archives
打包 Debug
和 Release
两种环境,去获取 dSYM文件
,本文以 Release
发布环境为例
- 配置打包环境
Release
- Show in Finder -> 显示包内容,找到
dSYM文件
- 最后,在桌面或任意位置,新建一个文件夹如
appdSYM
,将xxx.app.dSYM
拷贝进来
至此,获取 dSYM文件
完成
工具手动上传符号表
- 下载
Bugly
iOS 符号表 上传工具,如下图:
- 下载后自动解压,得到
buglyqq-upload-symbol
文件夹
- 获取dSYM文件UUID
使用命令:xcrun dwarfdump –uuid <dSYM文件>
1 | mac@bogon ~ % xcrun dwarfdump --uuid /Users/mac/Desktop/UBR_ZJ/buglyqq-upload-symbol/dSYM2.5.3/北京环球.app.dSYM |
- cd 到
buglyqq-upload-symbol
文件夹
1 | mac@bogon ~ % cd /Users/mac/Desktop/UBR_ZJ/buglyqq-upload-symbol |
- 上传dSYM符号表
1 | mac@bogon buglyqq-upload-symbol % java -jar buglyqq-upload-symbol.jar -appid 1964851d56 -appkey dc466ac1-7416-4822-b68b-cc111bac616e -bundleid com.universalbeijingresort.app -version 2.5.3 -platform IOS -inputSymbol /Users/mac/Desktop/UBR_ZJ/buglyqq-upload-symbol/dSYM/北京环球.app.dSYM |
【参数说明】:
-addid :在 bugly 上对应的 appid
-appkey :在 bugly 上对应的 appkey
-bundleid : iOS平台的 bundle id
-version :版本号 1.6.2
-platform :平台(注意大小写)IOS Android
-inputSymbol :dSYM调试文件 /Users/mac/Desktop/UBR_ZJ/buglyqq-upload-symbol/dSYM/北京环球.app.dSYM
-inputMapping:mapping所在文件夹目录地址[Android平台特有,ios忽略!
- 上传成功后,平台显示
自动配置:Xcode + Shell 脚本
自动配置请首先下载和解压 自动配置符号表工具包 ,然后选择上传方式并配置Xcode的编译执行脚本。(目前不支持了)
上传方式
使用脚本自动配置支持两种上传方式(建议用方式二):
- 方式一:直接上传dSYM文件(默认方式 )
- 方式二:提取dSYM文件的符号表文件并上传
其中,使用方式二需要额外操作以下几步:
下载符号表提取工具依赖的 Java 运行环境(JRE或JDK版本需要>=1.6)
把工具包
buglySymbolIOS.jar
保存在用户主目录(Home)的bin
目录下(没有bin文件夹,请自行创建):
配置Xcode编译执行脚本:
- 在
Xcode
工程对应Target
的Build Phases
中新增Run Scrpit Phase
:
打开工具包中的
dSYM_upload.sh
,复制所有内容,在新增的Run Scrpit Phase
中粘贴修改新增的
Run Scrpit
中的为您的 App ID
,为您的 App Key
,为App的 Bundle Id
脚本默认在 Debug模式及模拟器
编译情况下 不会上传符号表
,在需要上传的时候,请修改下列选项
- Debug模式编译是否上传,1=上传 0=不上传,默认不上传
- UPLOAD_DEBUG_SYMBOLS=0
- 模拟器编译是否上传,1=上传 0=不上传,默认不上传
- UPLOAD_SIMULATOR_SYMBOLS=0
至此,自动上传符号表脚本配置完毕,Bugly
会在每次 Xcode
工程编译后自动完成符号表配置工作。
项目中使用
- 项目需要集成cocoapods三方依赖管理工具,用cocoapods集成
Bugly
SDK
1 | platform :ios, '9.0' |
- 使用
1 | #pragma mark -Bugly |
- Post title:性能优化03.1:bugly搜集Crash
- Post author:张建
- Create time:2023-03-09 05:32:04
- Post link:https://redefine.ohevan.com/2023/03/09/OC性能优化/性能优化03.1:bugly搜集Crash/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.