• 主页
  • 随笔
  • 技术笔记
  • 全部文章
标签 友链 关于我

  • 主页
  • 随笔
  • 技术笔记
  • 全部文章

Bugly上传符号表

阅读数:次 2022-10-02
字数统计: 970字   |   阅读时长≈ 4分

腾讯bugly可以帮助我们快速定位线上bugly,在操作的过程中难度最大的就是符号表的配置.

一、什么是符号表?

符号表是内存地址与函数名、文件名、行号的映射表。符号表元素如下所示:
<起始地址> <结束地址> <函数> [<文件名:行号>]

二、为什么要配置符号表?

为了能快速并准确地定位用户APP发生Crash的代码位置,Bugly使用符号表对APP发生Crash的程序堆栈进行解析和还原。
举一个例子:

Bugly提供了自动和手动两种方法配置iOS符号表。

三、自动配置:XCode + sh脚本:

自动配置请首先下载和解压自动配置符号表工具包,然后选择上传方式并配置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 工程编译后自动完成符号表配置工作。

四、手动配置

下载最新版Bugly iOS符号表工具,其中工具包中包括:

  • 符号表工具JAR包(buglySymboliOS.jar)
  • Shell脚本(buglySymboliOS.sh)
  • 符号表上车工具JAR包(buglyqq-upload-symbol.jar)

根据Crash的UUID定位要上传的dSYM文件

  • 获取Crash的UUID

  • 获取dSYM文件UUID

      xcrun dwarfdump --uuid <dSYM文件>
    

3、终端进入buglyqq-upload-symbol.jar所在的文件夹

bogon:~ zhanghua$ cd /Users/zhanghua/Desktop/buglyqq-upload-symbol 
bogon:buglyqq-upload-symbol zhanghua$ 

4、执行命令

  java -jar buglyqq-upload-symbol.jar -appid <产品对应的appid> -appkey <产品对应的appkey> -bundleid <bundle id> -version <App版本号> -platform <平台类型分别是 Android、IOS,注意大小写要正确> -inputSymbol <dSYM文件路径>

5、结果

    bogon:buglyqq-upload-symbol zhanghua$ java -jar buglyqq-upload-symbol.jar -appid 5564d03239 -appkey 35306e6d-eb19-4278-9de6-268556c569a4 -bundleid com.tiens.chinads.QingYang -version 2.0 -platform IOS -inputSymbol /Users/zhanghua/Library/Developer/Xcode/DerivedData/QingYang-gzepnblsfimroldverozjgbepktt/Build/Products/Debug-iphonesimulator/QingYang.app.dSYM
    ##[info]clear cache buglyQqUploadSymbolLib
    ##[info]clear cache symbolToolAndroid
    ##[info]bugly tools android params: -appid 5564d03239 -appkey 35306e6d-eb19-4278-9de6-268556c569a4 -bundleid     com.tiens.chinads.QingYang -version 2.0 -platform IOS -inputSymbol /Users/zhanghua/Library/Developer/Xcode/DerivedData/QingYang-    gzepnblsfimroldverozjgbepktt/Build/Products/Debug-iphonesimulator/QingYang.app.dSYM
    
    Bugly(bugly.qq.com)符号表工具上传工具包 V1.0.48
    ......................    省略部分
    ......................    省略部分
    ......................    省略部分
    ......................    省略部分
    ##[info]envtype is null
    ##[info]getAppModuleList is null
    ##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"5564d03239-7e6674b7-2fac-4977-8c88-    e2a791dd17c1"}
    ##[info]now begin to uploadFileContent
    ##[info]request uploadFileurl is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadFile
    ##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"5564d03239-7e6674b7-2fac-4977-8c88-e2a791dd17c1"}
    bogon:buglyqq-upload-symbol zhanghua$ 
    

查看指定模块加载地址

xcrun atos -o Spark.app.dSYM/Contents/Resources/DWARF/Spark -l 0x0000000102b78000 0x0000000102bea678

6、上传后平台显示

  • 本文作者: Grx
  • 本文链接: https://ruixiaoguo.github.io/Grx.github.io/Grx.github.io/2022/10/02/Bugly上传符号表/
  • 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
  • OC

扫一扫,分享到微信

iOS手动还原Crash符号表
cocopods切换当前源
  1. 1. 一、什么是符号表?
  2. 2. 二、为什么要配置符号表?
  3. 3. 三、自动配置:XCode + sh脚本:
    1. 3.0.0.1. 自动配置请首先下载和解压自动配置符号表工具包,然后选择上传方式并配置Xcode的编译执行脚本。
  4. 3.0.1. 上传方式
  • 3.1. 配置Xcode编译执行脚本
  • 4. 四、手动配置
    1. 4.0.1. 6、上传后平台显示
  • © 2014-2024 Grx
    GitHub:hexo-theme-yilia-plus by Litten
    本站总访问量次 | 本站访客数人
    • 标签
    • 友链
    • 关于我

    tag:

    • life
    • OC
    • Google
    • Fastlane
    • Flutter
    • hexo
    • 智能家居
    • Apple Watch
    • 逆向
    • Lottie
    • PHP
    • cocos2d
    • Mac
    • MonkeyKing
    • RN
    • Swift
    • RAC
    • WKWebView
    • WebView
    • Xcode
    • xcode
    • ios
    • Android
    • appledoc
    • MMKV
    • LLVM
    • FreamWork






      
      

    • 唐巧的博客
    • 王巍(喵神)OneVsDen
    • 阿里“念纪“
    • 滴滴-戴铭
    • 郭曜源(ibireme)
    • 阿里”南栀倾寒“
    • 蘑菇街李忠
    • 码农人生
    • 玉令天下
    • bang
    • Ian的博客
    这里是Grx的个人博客:
    iOS开发工程师一枚
    联系方式:
    QQ:1217255509
    Email:grx0917@sina.com
    知识管理,时间管理,自我管理,架构即未来
    欢迎技术交流!