Bugly手动上传dSYM符号表文件

前言:新接手的项目中接入了Bugly错误统计,但是没有自动上传dSYM文件,需要手动上传。按照官方文档资料操作,最后却发现管理后台提供的上传入口已关闭,需要通过api上传,以下记录了整个上传操作过程。

本机环境:macOS Big Sur 11.4

本文更新:2021.08.04

Bugly官方公告:

【系统公告】尊敬的用户,因系统功能调整,符号表上传不再支持老版本(小于3.3.4)上传,请使用最新版本上传工具3.3.4(https://bugly.qq.com/v2/downloads),望知悉。
所以之前写的上传符号表流程走不通了

  • 最新解决方案

1、安装1.8.0版本Java运行环境

百度云链接: https://pan.baidu.com/s/1X-JMOsMcFLAO5tOcMskQ7g 密码: cjg6
安装完成后,查看java版本

java -version

输出信息如下1.8.0_xxx,则正确

java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
注意:

如输出类似如下16.x.x,则错误

java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)

出错的原因是因为电脑中有更高的java版本,需要手动删除。
打开指定路径下文件,删除高版本

/Library/Java/JavaVirtualMachines/

再次打印java版本验证是否正确

2、下载最新版Bugly iOS符号表工具 '3.3.4'

包含jar包和教程
buglyqq-upload-symbol.jar
符号表上传工具使用说明.doc

3、桌面创建空白文件夹,命名testBugly。将生成的dSYM文件和上述工具包中的buglyqq-upload-symbol.jar拖入文件夹中
4、配置信息,上传符号表

参数注释可查看符号表上传工具使用说明.doc文档,注意参数和最后的dSYM路径一定要填写正确

java -jar buglyqq-upload-symbol.jar -appid xxxxxx -appkey xxxxxx-xxxx-xxxxx-xxxx-xxxxxx-bundleid com.xxxx.xxxx -version 3.1.12 -platform IOS -inputSymbol /Users/aha/Desktop/testBugly/xxx.app.dSYM

最后显示如下内容时表示上传成功

##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"0d51635151-e46065cc-0f3a-4508-bdab-fe359c8ebfc7"}

分割线

  • 以下为已废弃流程

1、下载符号表提取工具依赖的Java运行环境(JRE或JDK版本需要>=1.6)

已下载好版本jdk-8u291-macosx-x64
百度云链接: https://pan.baidu.com/s/1egC__F5GVTolaTrz52G96w 密码: hnjs

安装完成后,查看java版本
java -version
输出

java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)
java
2、下载最新版Bugly iOS符号表工具

其中工具包中包括:

  • 符号表工具JAR包(buglySymboliOS.jar)
  • Windows的脚本(buglySymboliOS.bat)
  • Shell脚本(buglySymboliOS.sh)
  • 默认符号表配置文件(settings.txt)
  • 符号表工具iOS版-使用指南
符号表工具包
3、桌面创建空白文件夹,命名testBugly。将生成的dSYM文件和上述工具包中的buglySymboliOS.jar拖入文件夹中
4、 生成新的符号表文件

终端中操作

cd /Users/ahamac/Desktop/testBugly
java -jar buglySymbolIOS.jar -i /Users/ahamac/Desktop/testBugly/hhh.app.dSYM
5、上传生成的新的符号表文件

首先压缩下dSYM文件生成zip压缩包,终端中操作

curl -k "https://api.bugly.qq.com/openapi/file/upload/symbol?app_key=8ccc-1ccc-4ccc-9ccc-6ccc&app_id=0d11111111" --form "api_version=1" --form "app_id=0d11111111" --form "app_key=8ccc-1ccc-4ccc-9ccc-6ccc" --form "symbolType=2" --form "bundleId=com.xxxx.xxxx" --form "productVersion=3.3.3" --form "fileName=hhh.app.dSYM.zip" --form "file=@buglySymbol_hhh_arm64-2d5e4.zip" --verbose

最后显示如下内容时表示上传成功
{"rtcode":0,"msg":"Success","data":{"reponseCode":"0"}}* Closing connection 0
备注:

  • app_key和app_id在bugly管理后台
  • api_version:固定1
  • symbolType: 固定2
  • bundleId: app项目bundleId
  • productVersion: app项目对应的版本
  • fileName: dSYM文件生成zip压缩包名称
  • file: 步骤4中生成的新的符号表文件
最后附上全部终端内容
ahamac@aha-Pro Desktop % cd /Users/ahamac/Desktop/testBugly 
ahamac@aha-Pro testBugly % java -jar buglySymbolIOS.jar -i /Users/ahamac/Desktop/testBugly/hhh.app.dSYM
/Users/ahamac/Desktop/testBugly/hhh.app.dSYM/Contents/Resources/DWARF/hhh [arm64] 2d5e48dc854b3ba8b5c56e06b1671cb1

[SymtabTool-I] Extracting symtab file: hhh
[SymtabTool-I] Begin to parse file: /Users/ahamac/Desktop/testBugly/hhh.app.dSYM/Contents/Resources/DWARF/hhh
[SymtabTool-I] Architecture: arm64
[SymtabTool-I] Successfully parsed the file!
[SymtabTool-I] Begin to parse file: /Users/ahamac/Desktop/testBugly/hhh.app.dSYM/Contents/Resources/DWARF/hhh
[SymtabTool-I] Architecture: arm64
[SymtabTool-I] Successfully parsed the file!
[SymtabTool-I] Begin to extract symbol table.......................................................................................
[SymtabTool-I] Successfully to extract symbol table!
[SymtabTool-I] Begin to create symtab file: /Users/ahamac/Desktop/testBugly/hhh.app.dSYM/Contents/Resources/DWARF/buglySymbol&%E8%80%81%E6%9D%BF%E9%80%9A&arm64&2d5e48dc854b3ba8b5c56e06b1671cb1.symbol
[SymtabTool-I] Successfully created symtab file!
[SymtabTool-I] Begin to parse the file:/Users/ahamac/Desktop/testBugly/hhh.app.dSYM/Contents/Resources/DWARF/buglySymbol&%E8%80%81%E6%9D%BF%E9%80%9A&arm64&2d5e48dc854b3ba8b5c56e06b1671cb1.symbol
[SymtabTool-I] Successfully parsed the file
[SymtabTool-I] Begin to construct stif file: /Users/ahamac/Desktop/testBugly/老hhh.app.dSYM/Contents/Resources/DWARF/buglySymbol&%E8%80%81%E6%9D%BF%E9%80%9A&arm64&2d5e48dc854b3ba8b5c56e06b1671cb1.stif
[SymtabTool-I] Successfully constructed stif file
[SymtabTool-I] Add stif to symtab zip file: /Users/ahamac/Desktop/testBugly/hhh.app.dSYM/Contents/Resources/DWARF/buglySymbol&%E8%80%81%E6%9D%BF%E9%80%9A&arm64&2d5e48dc854b3ba8b5c56e06b1671cb1.stif
[SymtabTool-I] Begin to zip symtab file: /Users/ahamac/Desktop/testBugly/buglySymbol_hhh_arm64-2d5e4.zip
[SymtabTool-I] Successfully zipped symtab file!
ahamac@aha-Pro testBugly % curl -k "https://api.bugly.qq.com/openapi/file/upload/symbol?app_key=8ccc-1ccc-4ccc-9ccc-6ccc&app_id= 0d11111111" --form "api_version=1" --form "app_id= 0d11111111" --form "app_key=8ccc-1ccc-4ccc-9ccc-6ccc" --form "symbolType=2"  --form "bundleId=com.xxxx.xxxx" --form "productVersion=3.3.3" --form "fileName=hhh.app.dSYM.zip" --form "file=@hhh.app.dSYM.zip" --verbose
curl: (26) Failed to open/read local data from file/application
ahamac@aha-Pro testBugly % curl -k "https://api.bugly.qq.com/openapi/file/upload/symbol?app_key=8ccc-1ccc-4ccc-9ccc-6ccc&app_id= 0d11111111" --form "api_version=1" --form "app_id= 0d11111111" --form "app_key=8ccc-1ccc-4ccc-9ccc-6ccc" --form "symbolType=2"  --form "bundleId=com.xxxx.xxxx" --form "productVersion=3.3.3" --form "fileName=hhh.app.dSYM.zip" --form "file=@buglySymbol_hhh_arm64-2d5e4.zip" --verbose
*   Trying 111.161.111.119...
* TCP_NODELAY set
* Connected to api.bugly.qq.com (111.161.111.119) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: C=CN; ST=guangdong; L=shenzhen; O=Tencent Technology (Shenzhen) Company Limited; CN=*.sept03.sparta.3g.qq.com
*  start date: Sep 27 04:45:44 2020 GMT
*  expire date: Oct 29 04:45:44 2021 GMT
*  issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign Organization Validation CA - SHA256 - G2
*  SSL certificate verify ok.
> POST /openapi/file/upload/symbol?app_key=8ccc-1ccc-4ccc-9ccc-6ccc&app_id= 0d11111111 HTTP/1.1
> Host: api.bugly.qq.com
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Length: 8508885
> Content-Type: multipart/form-data; boundary=------------------------9ed226e5fb5bf864
> Expect: 100-continue
> 
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
< HTTP/1.1 200 OK
< Server: nginx
< Date: Fri, 25 Jun 2021 03:48:02 GMT
< Content-Type: application/json; charset=utf-8
< Content-Length: 55
< Connection: keep-alive
< Set-Cookie: JSESSIONID=f26a766c-2037-4195-8b6f-b8c2d22f366a; Path=/; HttpOnly
< Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Thu, 24-Jun-2021 03:47:55 GMT
< 
* Connection #0 to host api.bugly.qq.com left intact
{"rtcode":0,"msg":"Success","data":{"reponseCode":"0"}}* Closing connection 0
ahamac@aha-Pro testBugly % 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容