Skip to content

Commit

Permalink
Fix R8 config (#2379)
Browse files Browse the repository at this point in the history
  • Loading branch information
romtsn committed Nov 21, 2022
1 parent 4a9c176 commit d49f98e
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 6 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog

## Unreleased

### Fixes

- Use `canonicalName` in Fragment Integration for better de-obfuscation ([#2379](https://github.com/getsentry/sentry-java/pull/2379))
- Fix Timber and Fragment integrations auto-installation for obfuscated builds ([#2379](https://github.com/getsentry/sentry-java/pull/2379))

## 6.8.0

### Fixes
Expand Down
5 changes: 4 additions & 1 deletion sentry-android-core/proguard-rules.pro
Expand Up @@ -11,10 +11,13 @@
-keep class androidx.lifecycle.ProcessLifecycleOwner { <init>(...); }
##---------------End: proguard configuration for androidx.lifecycle ----------

# To mitigate the issue on R8 site (https://issuetracker.google.com/issues/235733922)
# To mitigate the issue on R8 site (https://issuetracker.google.com/issues/235733922)
# which comes through AGP 7.3.0-betaX and 7.4.0-alphaX
-keepclassmembers enum io.sentry.** { *; }

# To filter out io.sentry frames from stacktraces
-keeppackagenames io.sentry.**

# don't warn jetbrains annotations
-dontwarn org.jetbrains.annotations.**
# don't warn about missing classes (mainly for Guardsquare's proguard).
Expand Down
3 changes: 2 additions & 1 deletion sentry-android-fragment/proguard-rules.pro
@@ -1,7 +1,8 @@
##---------------Begin: proguard configuration for Fragment ----------

# The Android SDK checks at runtime if this class is available via Class.forName
# The Android SDK checks at runtime if these classes are available via Class.forName
-keep class io.sentry.android.fragment.FragmentLifecycleIntegration { <init>(...); }
-keepnames class androidx.fragment.app.FragmentManager$FragmentLifecycleCallbacks

# To ensure that stack traces is unambiguous
# https://developer.android.com/studio/build/shrink-code#decode-stack-trace
Expand Down
Expand Up @@ -143,7 +143,7 @@ class SentryFragmentLifecycleCallbacks(
}

private fun getFragmentName(fragment: Fragment): String {
return fragment.javaClass.simpleName
return fragment.javaClass.canonicalName ?: fragment.javaClass.simpleName
}

private fun isRunningSpan(fragment: Fragment): Boolean =
Expand Down
Expand Up @@ -198,7 +198,7 @@ class SentryFragmentLifecycleCallbacksTest {
assertEquals(SentryFragmentLifecycleCallbacks.FRAGMENT_LOAD_OP, it)
},
check {
assertEquals("Fragment", it)
assertEquals("androidx.fragment.app.Fragment", it)
}
)
}
Expand Down Expand Up @@ -272,7 +272,7 @@ class SentryFragmentLifecycleCallbacksTest {
assertEquals("navigation", breadcrumb.type)
assertEquals(INFO, breadcrumb.level)
assertEquals(expectedState, breadcrumb.getData("state"))
assertEquals(fixture.fragment.javaClass.simpleName, breadcrumb.getData("screen"))
assertEquals(fixture.fragment.javaClass.canonicalName, breadcrumb.getData("screen"))
},
anyOrNull()
)
Expand Down
3 changes: 2 additions & 1 deletion sentry-android-timber/proguard-rules.pro
@@ -1,7 +1,8 @@
##---------------Begin: proguard configuration for Timber ----------

# The Android SDK checks at runtime if this class is available via Class.forName
# The Android SDK checks at runtime if these classes are available via Class.forName
-keep class io.sentry.android.timber.SentryTimberIntegration { <init>(...); }
-keepnames class timber.log.Timber

# To ensure that stack traces is unambiguous
# https://developer.android.com/studio/build/shrink-code#decode-stack-trace
Expand Down

0 comments on commit d49f98e

Please sign in to comment.