Android

Instructions for installing Purchases SDK for Android

What is RevenueCat?

RevenueCat provides a backend and a wrapper around StoreKit and Google Play Billing to make implementing in-app purchases and subscriptions easy. With our SDK, you can build and manage your app business on any platform without having to maintain IAP infrastructure. You can read more about how RevenueCat fits into your app or you can sign up free to start building.

Android

Installation

Purchases for Android (Google Play and Amazon Appstore) is available on Maven and can be included via Gradle.

ReleaseRelease

implementation 'com.revenuecat.purchases:purchases:4.3.1'

Import Purchases

You should now be able to import Purchases.

import com.android.billingclient.api.SkuDetails;
import com.revenuecat.purchases.Entitlement;
import com.revenuecat.purchases.Offering;
import com.revenuecat.purchases.PurchaserInfo;
import com.revenuecat.purchases.Purchases;

Configure Proguard

You should add -keep class com.revenuecat.purchases.** { *; } to your Proguard configuration.

Amazon

Additional Dependencies

Add a new dependency to the build.gradle apart from the regular purchases dependency. These new dependencies have the classes needed to use Amazon IAP:

implementation 'com.revenuecat.purchases:purchases:5.0.0-amazon.alpha.3'
implementation 'com.revenuecat.purchases:purchases-store-amazon:5.0.0-amazon.alpha.3'
implementation files('libs/in-app-purchasing-2.0.76.jar')

The next step would be to add the in-app-purchasing jar to your project. For that you can use the following gradle task that can be added to app/build.gradle and run via ./gradlew getAmazonLibrary or via Android Studio:

// Gradle task to download Amazon library
ext {
    iapVersion = "2.0.76"
}

task getAmazonLibrary {
    ext {
        downloadURL = "https://amzndevresources.com/iap/sdk/AmazonInAppPurchasing_Android.zip"
        fileToExtract = "in-app-purchasing-${iapVersion}.jar"
        destFile = new File( projectDir, "libs/$fileToExtract" )
    }

    inputs.property( 'downloadURL', downloadURL )
    inputs.property( 'fileToExtract', fileToExtract )
    outputs.file( destFile )

    doLast {
        File destDir = destFile.parentFile
        destDir.mkdirs()

        File downloadFile = new File( temporaryDir, 'download.zip' )
        new URL( downloadURL ).withInputStream { is ->
            downloadFile.withOutputStream { it << is }
        }

        project.copy {
            from {
                zipTree(downloadFile).matching { include "**/$fileToExtract" }.singleFile
            }

            into( destDir )
        }
    }
}

That gradle task will add the jar to the libs folder inside the project:

Alternatively, you can do this manually by downloading the .zip from Amazon and then unzipping and moving the in-app-purchasing-2.0.76.jar into your projects android/app/libs/ folder like in the screenshot above.

Due to some limitations, RevenueCat will only validate purchases made in production or in Live App Testing and won't validate purchases made with the Amazon App Tester.

Next Steps


Did this page help you?