为了更好地解析崩溃信息,快速准确地定位用户App发生崩溃的具体代码位置,需要上传对应版本的符号表到透视宝云端,对App发生崩溃的程序堆栈进行解析和反编译,从而还原崩溃堆栈。
IOS应用符号表说明
要上传符号表,首先您需要在应用工程中找到对应的文件。对于IOS应用,符号表是指应用工程的dYSM文件([Appname].app.dYSM文件), 生成dYSM文件的过程如下:
1、 打开应用工程,在工具栏中点击工程名称并选择“Edit Scheme”,如下图所示。
2、 在打开的对话框中,将工程由Debug模式转为Release模式后关闭对话框,如下图所示。
3、 编译工程,使用Command + B快捷键build工程。
4、 编译成功后,在应用工程的Products目录下,右击[Appname].app文件并选择“Show in Finder”,如下图所示。
5、 在打开的对话框中可以看到[Appname].app.dSYM文件,该文件即为用于解析崩溃信息的符号表,您可以在透视宝云端上传该文件。
需说明的是,当您的Archive模式为Build时,需要通过以下方式找到生成的dSYM文件:
选择“Window→Organizer”,打开应用工程的Archive列表,如下图所示。
选择您的App,右击Archive文件并选择“Show in Finder”,如下图所示。
在打开的对话框中,右击[Appname time].xcarchive文件并选择“显示包内容”,如下图所示。
在打开的对话框中,进入dSYM目录可以找到[Appname].app.dSYM文件,该文件即为用于解析崩溃信息的符号表,您可以在透视宝云端上传该文件。
Android应用符号表说明
要上传符号表,首先您需要在应用工程中找到对应的文件。对于Android应用,解码不同类型的崩溃信息,需要上传不同的崩溃解码文件。
解码Java Crash
如果要解码Java类型的崩溃信息(Java Crash),只需要上传应用工程的mapping文件。以Eclipse开发环境为例进行说明:
在应用工程根目录的proguard文件夹中找到mapping.txt文件,该文件即为用于解析崩溃信息的符号表,您可以在透视宝云端上传该文件。注意,proguard文件夹是为工程设置混淆后自动生成的。
解码Native Crash
如果要解码Native类型的崩溃信息(Native Crash),还需要上传应用工程的Debug so文件。
请注意,您必须提前在应用工程中集成透视宝提供的Cloudwise NDK(详细说明见“配置App工程”中的内容),编译应用工程后将对应的Debug so文件打包为zip包进行上传。
——在Eclipse开发环境中
默认情况下,Debug SO文件是位于应用工程的obj/local/CPU架构目录下的libCreateNativeCrash.so文件,如下图所示。
上传前,需删除local目录中无关的文件夹和文件,只保留CPU架构目录和对应的Debug SO文件(libCreateNativeCrash.so),然后打包为zip包(local.zip),zip包的目录结构为<local-架构-Debug SO文件>,如下图所示。
您可以在透视宝云端上传该zip包,用于解析和还原崩溃信息。
为保证正常解析和还原崩溃信息,上传zip包的目录结构必须与要求的完全一致。当然,您可以根据自己的需要上传某一个架构的Debug SO文件(libCreateNativeCrash.so),只要确保目录结构一致即可。
——在Android Studio开发环境中
默认情况下,Debug SO文件是位于应用工程的obj/local/CPU架构目录下的libCreateNativeCrash.so文件,如下图所示。
如果是Debug编译,默认情况下,Debug SO文件的具体的路径为:
<子项目文件夹>/build/intermediates/ndk/debug/obj/local/<架构(Architecture)>/
如果是Release编译,Debug SO文件的具体的路径为:
<子项目文件夹>/build/intermediates/ndk/release/obj/local/<架构(Architecture)>/
说明:Android Sutdio中"子项目"即Module,如app。
上传前,需删除local目录中无关的文件夹和文件,只保留CPU架构目录和对应的Debug SO文件(libCreateNativeCrash.so),然后打包为zip包(local.zip),zip包的目录结构为<local-架构-Debug SO文件>,如下图所示。
您可以在透视宝云端上传该zip包,用于解析和还原崩溃信息。
为保证正常解析和还原崩溃信息,上传zip包的目录结构必须与要求的完全一致。当然,您可以根据自己的需要上传某一个架构的Debug SO文件(libCreateNativeCrash.so),只要确保目录结构一致即可。
上传符号表
目前,透视宝支持用户手动上传用于解析和还原崩溃信息的符号表。使用管理员角色的账户登录透视宝,在“移动→设置”页面的“上传符号表”页上传符号列表,如下图所示。
要上传符号表,首先需新建应用版本。点击<新建版本>按钮新建一个应用版本,选择应用的类型并设置应用版本号,保存后可上传符号表。
点击<上传>按钮上传应用对应版本的符号表,上传成功后其状态显示为“已上传”。
点击<删除>按钮可删除对应的应用版本及符号表。