Bugly网站中关于dSYM文件脚本自动上传几个注意点记录

什么是符号表?

符号表是内存地址与函数名、文件名、行号的映射表。符号表元素如下所示:

<起始地址> <结束地址> <函数> [<文件名:行号>]

为什么要配置符号表?

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

举一个例子:

Bugly网站中关于dSYM文件脚本自动上传几个注意点记录_第1张图片

简而言之,配置符号表文件就是让网站中显示的出错堆栈从16进制解析为我们可以查看的关于 <起始地址> <结束地址> <函数> [<文件名:行号>] 的信息。

关于符号表配置的更多信息中,在Bugly iOS 符号表配置有详细的介绍。我这里记载几个关于自动上传出现的问题解决。

查看shell打印输出

位置为:Report Navigators,快捷键 com + 9, 就是左侧栏中第九项

Bugly网站中关于dSYM文件脚本自动上传几个注意点记录_第2张图片

知道在哪里查看就可以清楚当前run或者archive出来的ipa是否成功上传了dsYM文件


Debug模式

couldn't open file "/Users/tjsoft/Library/Developer/Xcode/DerivedData/..."

即该模式下无法生成dsYM文件,在官方文档XCode编译后没有生成dSYM文件?

Xcode Release编译默认会生成dSYM文件,而Debug编译默认不会生成,对应的Xcode配置如下:

Xcode -> Build Settings -> Apple Clang - Code Generation -> Generate Debug Symbols -> Yes

Xcode -> Build Settings -> Build Option -> Debug Information Format -> DWARF with dSYM File

Bugly网站中关于dSYM文件脚本自动上传几个注意点记录_第3张图片

同时,将shell中的 UPLOAD_DEBUG_SYMBOLS=1 去除注释修改为1


Archive模式

Release模式下默认会生成dSYM文件,在Archive打包过程中,官方给的shell将控制此模式上传的UPLOAD_ARCHIVE_ONLY注释了,默认为所有的都会release模式都会上传,但是大部分情况下,我们需要bugly统计的情况下是Archive打包出来,用来记录崩溃信息的。
所以在集成bugly的时候,在debug模式下无需使用bugly模块服务,在代码中使用宏debug即可

#if !DEBUG
    BuglyConfig * config = [[BuglyConfig alloc] init];
    config.reportLogLevel = BuglyLogLevelWarn;
    [Bugly startWithAppId:appId config:config];
#endif

同时脚本中设置,避免除archive以外的Release模式上传dSYM文件

UPLOAD_ARCHIVE_ONLY=1

脚步自动上传dsYM出现问题

com + 9查看,出现


Showing All Messages
curl: (26) couldn't open file "/Users/tjsoft/Library/Developer/Xcode/DerivedData/XXXXX-haahjjaondjaenfagukjupzqycwk/Build/Intermediates.noindex/ArchiveIntermediates/taiji/BuildProductsPath/BuglySymbolTemp/XXX.app.dSYM.zip"

无法找到压缩的ZIP文件,相对应的文件夹打开压缩文件,说明Shell没有压缩成功。仔细寻找echo信息,可以看到zip erro

zip error: Nothing to do! 

Shell压缩不成功,我陆陆续续尝试了几次Archive,有成功有失败。。鉴于自己对于脚本研究不深,只能求助于Google。在Bugly 自动上传脚本在xcode10上报 zip error: Nothing to do! 错误的解决方法寻找到暂时解决的方法,在搜索dsYM 后缀文件这句前面添加 sleep 2s。具体如下:

sleep 2s

for dsymFile in $(find "$DSYM_FOLDER" -name '*.dSYM'); do

。。。暂时先这样解决

bugly 抽风没有解析的情况下

没错 ,在dsYM确认UUID准确的情况下,就是对于非系统库的文件不解析。。。

Bugly网站中关于dSYM文件脚本自动上传几个注意点记录_第4张图片

可以看到除了自己写的文件不解析出来之外,UIKitCore和CoreFoundation等都是可以。
这个时候推荐下大神写到dsYM分析工具 dSYMTools
具体源码和介绍都写的很清晰,这里说下 对应bugly中的 需要填写的内存地址和Slide Address
首先,切换为原始不解析模式,两列数据对应两个信息
Bugly网站中关于dSYM文件脚本自动上传几个注意点记录_第5张图片

分析图如下:
Bugly网站中关于dSYM文件脚本自动上传几个注意点记录_第6张图片

2018.10.20

看Bugly官网中通过iTunes Connect找回中提及可以在App Store Connect中下载对应版本的dsYM文件

Bugly网站中关于dSYM文件脚本自动上传几个注意点记录_第7张图片
Bugly

Bugly网站中关于dSYM文件脚本自动上传几个注意点记录_第8张图片

这也算一个问题。。。希望有大佬看到可以顺便指导下。。

你可能感兴趣的:(Bugly网站中关于dSYM文件脚本自动上传几个注意点记录)