符号表管理
Android符号化
Java符号表工具使用及上传
基调听云SDK 提供了两种方式上传mapping文件。
- 通过报表上传
- 通过tingyun.properties文件自动上传
通过报表上传Mapping文件
登录基调听云报表,选中异常分析模块,点击崩溃卡片,在「崩溃列表」右上角单击符号表管理。
找到对应版本,并上传本地 Mapping文件即可。
符号表上传默认按照应用版本的数据接收时间进行排序,支持根据应用版本进行检索,一个版本支持上传多个文件。
通过tingyun.properties文件自动上传
通过tingyun.properties文件自动上传Mapping文件,SDK需要 2.15.7 及以上版本。
说明:若您的项目不存在「tingyun.properties」文件,需在项目app目录及根目录下新建该文件。
在tingyun.properties 文件中配置。
uploadAddress=*基调听云登录报表的主域名(例如:https://wukong2.tingyun.com)* appKey=*基调听云AppKey* mapping_file_auto_upload=true
开启混淆器。
mapping_file_auto_upload控制开关只有在启用混淆器的时候才会生效,开启控制开关后,基调听云SDK会将本地目录下的mapping文件自动上传到基调听云服务器。若未开启混淆器则该配置项不生效。
Native符号表工具使用及上传
为了能快速并准确地定位应用发生 Native Crash 的代码位置,基调听云使用符号表文件对应用崩溃堆栈进行解析和还原。
原堆栈:
还原后堆栈:
符号表提取要求
符号表工具 nbs.newlens.so.parser.jar,是基调听云App提供给开发者提取符号表文件的工具。提取符号表需要符号表工具和Debug SO文件(具有调试信息的SO文件)。SDK 默认会在编译 release 版本时自动在项目根目录 tingyun 文件夹中生成符号表文件。您也可以使用符号表工具手动生成符号表文件。
工具选项
选项 | 说明 |
---|---|
-i | 指定so文件夹路径 |
生成符号表文件
使用符号表工具的JAR包生成符号表文件的命令如下:
java -jar nbs.newlens.so.parser.jar -i E:\JNIDemo\jniLibs //指定目录
生成的符号表文件 NewlensSymbol.zip 位于符号表工具目录下。
注意:基调听云上传符号表文件仅支持zip 格式,
-i
参数请指定生成SO文件夹的路径。该路径一般默认为app\build\intermediates\cmake\debug\obj,也可以通过CMakeLists.txt文件配置输出到其他目录。
上传符号表
Native符号表文件目前只支持报表上传。
登录基调听云报表,选中异常分析模块,点击崩溃卡片,在「崩溃列表」右上角单击符号表管理。
选择Native symbol页签,单击选择文件上传NewlensSymbol.zip即可。
iOS符号化
查找符号表
找到工程的.xcarchive文件,然后右选择“Show in Finder”进入文件目录。
右击“.xcarchive”文件,选择“显示包内容”。
选择对应的“.app.dSYM”文件,如:"HelloWorld.app.dSYM",右击"显示包内容"。
注意:下图标注部分为符号表文件,上传时请上传该文件而不是xxx.app.dSYM这个目录。
通过脚本上传符号表文件
通过Xcode + sh脚本上传符号表文件,操作步骤如下。
将解压后SDK包中tingyun.sh的内容粘贴到上图中shell下方的位置。
配置好上图中对应的APP_KEY和UPLOAD_URL。
在Input Files中添加:
若调用以下接口,需在脚本中将VERSION的值改成与接口设置的versionName一致。
(void)setVersionName:(NSString *)versionName;
若调用以下接口且useBuildVersion为YES时,需在脚本中将VERSION的值改成与CFBundleVersion版本号一致(xcode->General->Identity->Build)。
+(void)startWithAppID:(NSString*)appId location:(BOOL)locationAllowed rateOfLaunch:(double) rate channelId:(NSString *)channelId useBuildVersion:(BOOL)useBuildVersion;
通过报表上传符号表文件
- 登录基调听云报表,选中异常分析模块,点击崩溃卡片,在下方的「崩溃列表」右上角单击符号表管理。
在弹出窗口中在对应的应用版本号右侧单击添加按钮,再点击底部的选择文件按钮,手动上传符号表。如下图所示:
通过命令行上传符号表
打开终端,进入HelloWorld符号表的目录,即HelloWorld.app.dSYM/Contents/Resources/DWARF,输入如下命令:
curl -k -F file=@HelloWord -F buildVersion=CFBundleVersion -F shortVersion=CFBundleShortVersionString UPLOAD_URL/app-api/symbol/appkey/APP_KEY
命令行参数配置:
HelloWorld : 符号表名称 CFBundleShortVersionString : 主版本号(xcode->General->Identity->Version) CFBundleVersion : build版本号(xcode->General->Identity->Build) UPLOAD_URL : 基调听云登录报表的主域名(例如:https://wukong2.tingyun.com) APP_KEY: 基调听云App授权Key
上传符号表:配置完成后即可通过命令行上传符号表到基调听云服务器,出现 SUCCESS 说明上传成功。
{ "status": "SUCCESS", "message": "result: file name: HelloWord;builds : 44818402-CFA4-39E4-90B7-953914DE8A23,60ABFC59-0513-314D-8E66-BD81EC0FF1D2;SHA-1 : " }
执行命令及结果如图所示: