RevenueCat/purchases-android

Add com.android.vending.BILLING to Manifest

mattrob33 opened this issue · 6 comments

The Play Billing library embeds the required com.android.vending.BILLING permission in the manifest, ensuring that it is included in the app's final merged manifest.

Embedded billing permission inside library’s manifest. It's not necessary to add the com.android.vending.BILLING permission inside Android manifest anymore.

If I include the Play Billing library directly then I do not need to manually add the permission. But if I use RevenueCat instead, then I do need to add the permission or it doesn't make its way into the merged manifest. It seems like a correctness bug that RevenueCat does not follow the Play Billing library's behavior here.

I was surprised to find that #210 was accepted and closed by #211. Looking into this a bit, I wonder if the below FAQ addresses the warning referenced in #210.

Google Play Billing Library Deprecation FAQ

How to fix APK or App Bundle updated to latest Play Billing Library but still triggering deprecation warning?

Make sure your AndroidManifest.xml contains an entry with name com.google.android.play.billingclient.version. If the entry isn't present, check your manifest merge settings to see if the manifest attribute is being dropped during manifest merging.

👀 SDKONCALL-140 We've just linked this issue to our internal tracker and notified the team. Thank you for reporting, we're checking this out!

I just tried in a new project, and adding implementation 'com.revenuecat.purchases:purchases:5.6.1', adds an entry in the merged manifest:

Screen Shot 2022-10-06 at 6 32 00 PM

Are you adding the library using implementation?

Ah thanks, good to know. It looks like this may be an issue with including RevenueCat in a library module within my project then. I have a feature/subscriptions module which adds the RevenueCat dependency, and then I include that module in my app module. I just came across this in the docs:

Note: If you're building a library module, the final merged manifest does not include content from the manifests of the library's dependencies.

Yes, that happens for us with the Ads library. We have a dependency on it only in one of the modules, and since it's not the main module of the library, apps don't get the ADS permission, which is actually a good side effect in that case since we want apps to explicitly declare it

For the billing library, since it's our main module the one that declares the dependency, apps get the permission

Ok this looks like it's on my end then, so this issue can be closed I believe. Thanks for your help!

This issue has been automatically locked due to no recent activity after it was closed. Please open a new issue for related reports.