DataDog / dd-sdk-android-gradle-plugin

The Datadog Gradle Plugin for Android
Apache License 2.0
14 stars 9 forks source link

Stracktraces obfscuated despite mapping files being uploaded #283

Open mformetal opened 1 month ago

mformetal commented 1 month ago

Thanks for taking the time for reporting an issue!

Describe what happened

We're using this plugin to upload mapping files to de-obfsucate our stacktraces. I can validate that these mapping files were successfully uploaded via gradle output and when I view the RUM Debug Symbols page, but our traces are still garbled.

Steps to reproduce the issue:

We build a release application, release it, and expect to see traces on RUM de-obsfucated.

Describe what you expected:

Non-obfsucated stacktraces.

Additional context

-keepattributes Annotation -keepattributes SourceFile,LineNumberTable -keep public class * extends java.lang.Exception

GeoComply Proguard rules

-keep class com.geocomply. { *; } -keep class com.google.* { ; } -keep class android.support. { *; }

---------------Begin: proguard configuration for Gson ----------

Gson uses generic type information stored in a class file when working with fields. Proguard

removes such information by default, so configure it to keep all of it.

-keepattributes Signature

Gson specific classes

-dontwarn sun.misc.**

Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,

JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)

-keep class implements com.google.gson.TypeAdapter -keep class implements com.google.gson.TypeAdapterFactory -keep class implements com.google.gson.JsonSerializer -keep class implements com.google.gson.JsonDeserializer

Prevent R8 from leaving Data object members always null

-keepclassmembers,allowobfuscation class * { @com.google.gson.annotations.SerializedName ; }

---------------End: proguard configuration for Gson ----------

-assumenosideeffects class android.util.Log { public static d(...); public static v(...); }

Navigation

-keep public class * implements android.os.Parcelable

-dontwarn org.conscrypt.Conscrypt$Version -dontwarn org.conscrypt.Conscrypt -dontwarn org.conscrypt.ConscryptHostnameVerifier -dontwarn org.openjsse.javax.net.ssl.SSLParameters -dontwarn org.openjsse.javax.net.ssl.SSLSocket -dontwarn org.openjsse.net.ssl.OpenJSSE

-keepclassmembernames class bet.thescore.android.ui.webview.WebViewEvent$RunLexisNexisProfiling { *; }

-dontwarn com.miui.referrer. -dontwarn com.samsung.android.sdk.sinstallreferrer.

Keep public ViewModel constructors

-keepclassmembers public class * extends androidx.lifecycle.ViewModel { public (...); }


 - Other Gradle Plugins:

org.gradle.testing.jacoco.plugins.JacocoPlugin io.gitlab.arturbosch.detekt.DetektPlugin com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsPlugin com.google.firebase.perf.plugin.FirebasePerfPlugin org.gradle.api.plugins.JvmToolchainsPlugin com.android.build.gradle.AppPlugin com.google.gms.googleservices.GoogleServicesPlugin androidx.navigation.safeargs.gradle.SafeArgsJavaPlugin com.datadog.gradle.plugin.DdAndroidGradlePlugin io.github.takahirom.roborazzi.RoborazziPlugin org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper com.adarshr.gradle.testlogger.TestLoggerPlugin org.jetbrains.kotlin.gradle.internal.ParcelizeSubplugin app.cash.paparazzi.gradle.PaparazziPlugin

0xnm commented 1 month ago

Hello @mformetal! Sorry for the very late reply.

Can you please share which version of our SDK you are using? If it is the version above 2.9.0, can you please check that error events you see in RUM/Logs have a build_id attribute with a value equal to the value shown in the mapping file upload?