- New properties added to the PurchaserInfo to better manage non-subscriptions. RevenueCat#172
- Added mParticle as one of the attribution options
RevenueCat#163 - Added original_purchase_date to JSON response RevenueCat#164
- Updated BillingClient to 3.0.0 RevenueCat#166
- Moved the SKUDetails inside the ProductInfo that's passed to the Backend class when posting tokens RevenueCat#167
- Added
proxyKey
, useful for kids category apps, so that they can set up a proxy to send requests through. Do not use this unless you've talked to RevenueCat support about it. RevenueCat#152 RevenueCat#157 - Added
managementURL
to purchaserInfo. This provides an easy way for apps to create Manage Subscription buttons that will correctly redirect users to the corresponding subscription management page on all platforms. RevenueCat#151 - Extra fields sent to the post receipt endpoint:
normal_duration
,intro_duration
andtrial_duration
. These will feed into the LTV model for more accurate LTV values. RevenueCat#148 RevenueCat#156 - Fixed a bug where if the
context
passed to the SDK on setup is not anApplication
context, there is be a memory leak and potential issues getting the Advertising Info. RevenueCat#147 - Migrated more classes to use Parcelize RevenueCat#150
- Fix a subscriber attributes bug where the attributes are deleted when an alias is created. RevenueCat#135
- New headers for observer mode and platform version RevenueCat#136
- Fixed purchase buttons in Sample App RevenueCat#141
- Fixed enablePendingPurchases not being called when calling isFeatureSupported RevenueCat#138
- Adds a Java sample RevenueCat#129
- Updates invalidatePurchaserInfoCache RevenueCat#131
- Fixed Subscriber Attributes JSON in Android < 19 RevenueCat#144
- Another fix for NoSuchElementException when retrieving Advertising ID #124
- Added Subscriber Attributes, which allow developers to store additional, structured information for a user in RevenueCat. More info: https://docs.revenuecat.com/docs/user-attributes
- Fixes NoSuchElementException #115
- Added new method to invalidate the purchaser info cache, useful when promotional purchases are granted from outside the app. #109
- Fixes compatibility with AppsFlyer SDK RevenueCat#97
- Adds Fastlane to improve releases RevenueCat#99
- Posts price and currency code for managed products RevenueCat#96
- Adds platform flavor static variable RevenueCat#91
- Fixes RevenueCat#98
- Defers fetching updated PurchaserInfo and Offerings to whenever the app is foregrounded.
- Adds Lifecycle components to better detect the lifecycle of the app.
- Fixes
syncPurchases
andrestorePurchases
. - Adds
observer_mode
to the backend post receipt call.
- Exposes
all
, property ofOfferings
to access all the Offerings.
- Fixes some documentation
- Support for new Offerings system.
- Deprecates
makePurchase
methods. Replaces withpurchasePackage
- Deprecates
entitlements
method. Replaces withofferings
- See our migration guide for more info: https://docs.revenuecat.com/v3.0/docs/offerings-migration
- Updates to BillingClient 2.0.3 (#88). If
finishTransactions
is set tofalse
(orobserverMode
is true when configuring the SDK), this SDK won't acknowledge any purchase. - Adds proration mode support on upgrades/downgrades (#86)
- New identity changes (#87):
- The
.createAlias()
method is no longer required, use.identify()
instead .identify()
will create an alias if being called from an anonymous ID generated by RevenueCat- Added an
isAnonymous
property toPurchases.sharedInstance
- Improved offline use
- The
- Adds missing close call on inputStream.
- Fixes crash in
updatePendingPurchaseQueue
([#81] (RevenueCat#81)) - Deprecates activeEntitlements in RCPurchaserInfo and adds entitlements object to RCPurchaserInfo. For more info check out https://docs.revenuecat.com/docs/purchaserinfo
- Fix NullPointerException in BillingWrapper (#79)
- Handle missing INTERNET permissions when making network requests (#78)
- BREAKING CHANGE Removed deprecated makePurchase methods
- Improved logic on purchase tokens management
- NEW FEATURE Added Facebook as supported attribution network https://docs.revenuecat.com/docs/facebook-ads.
- Removes duplicated makePurchase call in deprecated makePurchase method.
- Fixes Proguard issue
- Fixes multi threading issues
- Fixes KotlinNullPointerException in Backend:248
- Fixes NullPointerException in Purchases:673
- Bugfix release: avoids caches being cleared when there is an error fetching purchaser info. Fixes RevenueCat#68
- BREAKING CHANGE Call
syncTransactions
to send purchases information to RevenueCat after any restore or purchase if you are using the SDK inobserverMode
. See our guide on Migrating Subscriptions for more information onsyncTransactions
: https://docs.revenuecat.com/docs/migrating-existing-subscriptions addAttribution
is now a static method that can be called before the SDK is configured.addAttribution
will automatically add therc_gps_adid
parameter.- A network user identifier can be send to the
addAttribution
function, replacing the previousrc_appsflyer_id
parameter. - Adds an optional configuration boolean
observerMode
. This will set the value offinishTransactions
at configuration time. - Updated BillingClient to 1.2.2.
makePurchase
now requires a SKUDetails product instead of a sku and type.- Header updates to include client version and locale which will be used for debugging and reporting in the future.
- Fixes exception when inputstream is null.
- Fixes an exception when Purchases is instantiated from a background thread.
- Fixes concurrency issue on servicerequests.
- Adds setFinishTransactions. Set this to false if you are finishing transactions outside of the Purchases SDK
- Adds userCancelled as a parameter to the completion block of the makePurchase function
- Better error codes
- The entitlements call now fails if the service returns FEATURE_NOT_SUPPORTED or BILLING_UNAVAILABLE. Also that DEVELOPER_ERROR that was always displaying in the logs, now shows as "Billing Service Setup is already trying to connect."
- Fixes some exceptions not being reported. We might start seeing more crashes that were silent before.
- Fixes ConcurrentModificationException when making a purchase fails.
- Refactor to all block based methods
- Optional listener method to receive changes in Purchaser Info
- Ability to turn on detailed logging by setting
debugLogsEnabled
- Use of AndroidX dependencies
- Upgraded Kotlin, compile and target versions
- Sends cached purchaser info after listener is set to fix offline
- Prevents calling endConnection if the service is not ready
- Adds singleton management inside the SDK
- Adds reset, create alias and identify calls
- Fixes callbacks being called in a background thread
- Renames allowUsingAnonymousId to allowsSharingPlayStoreAccount
- Other bugfixes
- Fixes onRestoreTransactions not being called if there are no tokens.
- Adds requestDate to the purchaser info to avoid edge cases
- Fix bug where closed RCPurchases were still listening for application lifecyle methods
- Fix for error edge case
- Add close method to Purchases, this should be called before creating a new purchases object
- Add close method to Purchases, this should be called before creating a new purchases object
- Ensure consumables are consumed
- Add ability to override
- Fix visibility for addAttribution methods
- Attribution! You can now pass attribution data from AppsFlyer, Adjust and Branch. You can then view the ROI of your campaigns, including revenue coming from referrals.
- Fix for entitlements, missing products now return as null, not blocking the whole entitlement
- Add error handler for entitlements fetch
- Add restore transactions listener methods
- Entitlements support
- Caching of purchaser info
- RevenueCat is coming out of beta! Sign up at https://www.revenuecat.com/
- Initial release