For Java
https://docs.fabric.io/android/crashlytics/dex-and-proguard.html https://docs.fabric.io/android/crashlytics/dex-and-proguard.html
配置 ProGuard 和 DexGuard
我们让您在应用程序中设置 ProGuard 或 DexGuard 并接收去混淆的崩溃报告变得简单。首先,Fabric 在内部使用注释,因此将以下行添加到您的配置文件中:
-keepattributes *Annotation*
接下来,为了提供最有意义的崩溃报告,请将以下行添加到您的配置文件中:
-keepattributes SourceFile,LineNumberTable
如果没有此规则,Crashlytics 仍将运行,但您的崩溃报告将不包含正确的文件名或行号。
For C++
https://docs.fabric.io/android/crashlytics/ndk.html https://docs.fabric.io/android/crashlytics/ndk.html
指定调试和发布二进制文件的路径
为了正确地符号化和处理本机崩溃,我们需要来自本机二进制文件的符号。通常,Android 的本机二进制构建过程会生成两组二进制文件:一组带有调试符号,一组将打包到最终的 APK 中。 Fabric 插件使用两组二进制文件在您的计算机上生成符号文件。符号生成和上传过程假设您的项目将有两个目录 - 一个用于调试二进制文件(下面称为 obj),另一个用于发布二进制文件(下面称为 libs) - 按特定于体系结构的文件夹进行细分。
当使用 Gradle 版本 2.2.0+ 的 Android 插件和 externalNativeBuild DSL 构建项目时,Fabric 插件能够自动检测每个本机构建变体所需的目录,以便生成适当的符号文件。
obj/
— armeabi
+ lib1.so
+ lib2.so
— x86
+ lib1.so
+ lib2.so
libs/
— armeabi
+ lib1.so
+ lib2.so
— x86
+ lib1.so
+ lib2.so
调试和发布二进制文件的路径可以通过 androidNdkOut(默认:src/main/obj)和 androidNdkLibsOut(默认:src/main/libs)属性手动控制。 Ant 用户可以在fabric.properties 文件中修改这些内容。 Gradle 用户可以通过 build.gradle 中的 crashlytics {} 块来控制这些。
Ant: ant crashlytics-upload-symbols
Gradle: ./gradlew crashlyticsUploadSymbols{Variant}
例如:./gradlew crashlyticsUploadSymbolsRelease
您还应该阅读“上传外部依赖项的符号”,它适用于您的代码。