iOS如何配置Bugly符号表(2020年最新)
本文将粗略的讲解 Bugly 的集成过程, 其中配置符号表部分会说的仔细一点
符号表就是内存地址与函数名, 文件名, 行号的映射表. 通过上传符号表, 我们能将 App 发生 Crash 的程序堆栈进行解析还原.
Bugly 是我在用的一个崩溃日志收集分析工具. 集成使用简单并且免费.
之前一直使用Xcode + sh
方式自动配置符号表, 直到有一天看到 crash 堆栈没有被解析, 才知道这个方法已无法上传符号表. 上网找过一些解决方法, 大致就是找到符号表后延迟以后再上传, 但也没什么效果. 随后再上官网查看文档, 使用官方手动配置的方法, 成功的上传了符号表和解析堆栈.
创建应用
上 官网 创建产品.
创建成功后获取应用的 App ID
集成
使用Cocoapods
集成pod 'Bugly'
初始化 SDK
在工程AppDelegate.m
的application:didFinishLaunchingWithOptions:
方法中初始化:
1 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
手动配置符号表
下载 最新版 请点击我这个连接去下载, 这个是 3.0.0 版本的.
包里面有几个文件:
- buglySymboliOS.jar: 符号表工具JAR包
- buglySymboliOS.bat: Windows的脚本
- buglySymboliOS.sh: Shell脚本
- settings.txt: 默认符号表配置文件
- 符号表工具iOS版-使用指南
运行需要
Java 运行环境
(JREJDK>=1.6)
使用脚本时, 请保证脚本和 jar 包在同个目录下!
获取 dSYM 文件
iOS 平台中, dSYM 文件是指具有调试信息的目标文件, 文件名通常为: dSYMxxx.app.dSYM
我使用下面的方式来找到它:
将最后的 dSYM 文件拷贝出来一份集中备份
dSYM 的符号表生成和上传
- 生成
我使用下面的方式来生成和上传 dSYM 文件
1 | cd /Users/dqh/Desktop/buglySymboliOS3.0.0 |
你需要更改以下选项信息:
- i /Users/AAAA_1.0.15.app.dSYM: 更改为 [i 自己 dSYM 文件存放的地址]
- id 123456: 更改为 [id 你自己在 Bugly 申请到的 apple id]
- key 123456-2608-4a57-8af8-ff9c4d481f3e: 更改为 [key 你自己在 Bugly 申请到的 apple key]
- package com.kikido.youappname: 更改为 [package 你自己 app 的 bundle id]
- version 1.3.5: 更改为 [version 你自己 app 的 version]
工具选项说明如下
选项 | 说明 |
---|---|
-i | 指定文件路径, 可指定目录(必选) |
-o | 输出的符号表 zip 文件的路径, 必须是 zip 文件 |
-d | 调试模式开关(默认关闭) |
-s | 指定配置文件(默认读取 JAR 目录下的 settings.text 文件) |
-u | 上传开关 |
-id | app id |
-key | app key |
-package | app 包名 |
-version | app 版本 |
-symbol | 生成 symbol 文件 |
更多信息请查看符号表工具iOS版-使用指南.pdf
使用上面的命令之后就会在本地生成符号表文件, 并上传到符号表.
下面是 crash 的堆栈解析, 完美