We upgraded the Android Intercom SDK from version 15.7.1 to 15.9.1. After pushing out a new release of our app, we noticed that we were not getting crash reports from Sentry. We use Sentry as well as Firebase Crashlytics to analyze crash reports.
After investigation, we determined that the Intercom Android SDK also uses Sentry. Updating the Intercom SDK had overwritten our configuration. This resulted in Sentry being turned off for our app.
Manifest merger failed : Attribute meta-data#io.sentry.auto-init@value value=(true) from AndroidManifest.xml:45:55-75
is also present at io.intercom.android:intercom-sdk-base:15.10.3] AndroidManifest.xml:25:13-34 value=(false).
Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml to override.
Sentry discourages usage in third-party SDKs (e.g. the Intercom Android SDK).
“It's considered bad practice to use Sentry SDKs in third-party plugins, packages, and libraries (such as payment SDKs or embeddable widgets) meant to be consumed by other apps.” — https://docs.sentry.io/platforms/
Your change is frustrating for multiple reasons:
- You violated the best practices of a popular third-party library that is likely used by many of your customers
- You released this update with no documentation, notice, or warning
The workaround to fix this issue is to override the Intercom SDK sentry config:
<meta-data android:name="io.sentry.auto-init" tools:replace="android:value" android:value="true" />
We have no way of knowing how this will affect your Sentry instance but we need Sentry to work for our app.