Skip to content

Latest commit

 

History

History
1060 lines (834 loc) · 57.3 KB

CHANGELOG.md

File metadata and controls

1060 lines (834 loc) · 57.3 KB

6.9.5

Dependency Updates

Other Changes

  • Remove outdated Amazon note in README (#449) via Toni Rico (@tonidero)

6.9.4

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.4.1 (#446) via RevenueCat Git Bot (@RCGitBot)

6.9.3

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 10.4.0 (#444) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.219.0 to 2.220.0 (#443) via dependabot[bot] (@dependabot[bot])

6.9.2

Dependency Updates

6.9.1

Bugfixes

  • Fix purchasePackage when no targeting context (#438) via Josh Holtz (@joshdholtz)

6.9.0

Dependency Updates

Other Changes

  • Update CHANGELOG to include 5.3.2 release notes (#416) via Toni Rico (@tonidero)

6.8.4

Dependency Updates

6.8.3

Bugfixes

  • Make CustomerInfo allPurchaseDates values nullable (#423) via Toni Rico (@tonidero)

Dependency Updates

6.8.2

Bugfixes

  • Fix setMixpanelDistinctID setter (#419) via Toni Rico (@tonidero)

Dependency Updates

6.8.1

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.6.0 (#413) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.5.0 (#412) via RevenueCat Git Bot (@RCGitBot)
  • Bump danger from 9.4.2 to 9.4.3 (#409) via dependabot[bot] (@dependabot[bot])

6.8.0

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.3.0 (#405) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.2.1 (#404) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.2.0 (#403) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.1.0 (#402) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.0.1 (#401) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 9.0.0 (#400) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.12.0 (#399) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.218.0 to 2.219.0 (#394) via dependabot[bot] (@dependabot[bot])
  • Bump fastlane from 2.217.0 to 2.218.0 (#392) via dependabot[bot] (@dependabot[bot])

Other Changes

  • Update fastlane-plugin-revenuecat_internal (#406) via NachoSoto (@NachoSoto)

6.7.0

Dependency Updates

6.6.1

Dependency Updates

  • Bump danger from 9.4.0 to 9.4.1 (#378) via dependabot[bot] (@dependabot[bot])
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.1.1 (#381) via RevenueCat Git Bot (@RCGitBot)

6.6.0

Dependency Updates

6.5.0

New Features

  • Adds isConfigured (#375) via Cesar de la Vega (@vegaro)

Bugfixes

  • Fix isAnonymous in iOS (#376) via Cesar de la Vega (@vegaro)

6.4.0

New Features

  • Trusted entitlements: Add support for trusted entitlements (#370) via Toni Rico (@tonidero)

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 8.0.0 (#371) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.4.0 (#369) via RevenueCat Git Bot (@RCGitBot)

Other Changes

  • CI: disable prepare-next-version (#367) via NachoSoto (@NachoSoto)

6.3.1

Dependency Updates

  • Bump fastlane from 2.216.0 to 2.217.0 (#365) via dependabot[bot] (@dependabot[bot])
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.3.3 (#363) via RevenueCat Git Bot (@RCGitBot)
  • Bump danger from 9.3.2 to 9.4.0 (#364) via dependabot[bot] (@dependabot[bot])
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.3.2 (#361) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.3.1 (#357) via RevenueCat Git Bot (@RCGitBot)

6.3.0

Dependency Updates

6.2.0

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.2.0 (#351) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 7.1.1 (#350) via RevenueCat Git Bot (@RCGitBot)

6.1.0

Dependency Updates

Other Changes

  • Remove creation of special UnityIAP package (#346) via Cesar de la Vega (@vegaro)
  • Add BillingClient versions to VERSIONS table (#345) via Cesar de la Vega (@vegaro)
  • Update Unity IAP compatibility for v6 in VERSIONS.md (#344) via Cesar de la Vega (@vegaro)
  • update RELEASING file to use the latest process (#342) via Andy Boedo (@aboedo)

6.0.0

RevenueCat Unity SDK v6 is here!! 😻

This latest release updates the SDK to use BillingClient 6 in Android. This version of BillingClient brings little change compared with BillingClient 5 which brought an entire new subscription model which resulted in large changes across the entire SDK.

The only modification at the API level involves replacing "ProrationMode" with "ReplacementMode". The specific replacement modes remain unchanged.

If your app doesn't currently use DEFERRED replacement modes, then you should be safe to upgrade to this version without changes in behavior.

If your app supports product changes using DEFERRED replacement mode, then you can either stick with the previous major version until support for DEFERRED is re-introduced in this major version, or you can remove DEFERRED replacement options from your app.

If you are using the SDK in observer mode, you should only use v6 in Android if you're using BillingClient 6.

See the Android Native - 6.x to 7.x Migration for more details.

If you come from an older version of the RevenueCat SDK, see Android Native - 5.x to 6.x Migration for a more thorough explanation of the new Google subscription model announced with BillingClient 5 and how to take advantage of it.

Bumped minimum Android SDK version

RevenueCat SDK v7 bumps minimum Android SDK version from Android 4.0 (API level 16) to Android 4.4 (API level 19).

Support for InApp Messages

We've added new APIs to support InApp messages both in Android and iOS. You can read more about:

  • Google Play InApp Messages which will show users a snackbar message during grace period and account hold once per day and provide them an opportunity to fix their payment without leaving the app.
  • App Store InApp messages which will show a modal during grace period once per subscription.

InApp Messages are shown by default in both platforms. If you want to disable this behaviour during configuration of the RevenueCat SDK, setup the shouldShowInAppMessagesAutomatically property during configuration to false:

Purchases.PurchasesConfiguration.Builder builder = Purchases.PurchasesConfiguration.Builder.Init("api_key");
Purchases.PurchasesConfiguration purchasesConfiguration =
    builder.SetShouldShowInAppMessagesAutomatically(false)
    .Build();
purchases.Configure(purchasesConfiguration);

New Features

  • Add missing IntroEligibilityStatusNoIntroOfferExists (#335) via NachoSoto (@NachoSoto)

Dependency Updates

5.3.2

Dependency Updates

5.3.0

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.3.0 (#332) via RevenueCat Git Bot (@RCGitBot)

5.2.0

Bugfixes

  • Fix for iOS discounts not being returned (#322) via Josh Holtz (@joshdholtz)

Dependency Updates

  • Bump danger from 9.3.1 to 9.3.2 (#328) via dependabot[bot] (@dependabot[bot])
  • Bump fastlane from 2.215.1 to 2.216.0 (#327) via dependabot[bot] (@dependabot[bot])
  • Bump fastlane from 2.214.0 to 2.215.1 (#324) via dependabot[bot] (@dependabot[bot])
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.2.0 (#325) via RevenueCat Git Bot (@RCGitBot)

Other Changes

  • Using Xcode 14 (#326) via NachoSoto (@NachoSoto)

5.1.4

Dependency Updates

5.1.3

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 6.1.0 (#313) via RevenueCat Git Bot (@RCGitBot)

5.1.2

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 5.6.4 (#309) via RevenueCat Git Bot (@RCGitBot)

5.1.1

Dependency Updates

5.1.0

Dependency Updates

Bugfixes

  • Added the optional googleIsPersonalizedPrice parameter to all purchase methods.

5.0.0

RevenueCat Purchases Unity v5 is here!! 😻

This latest release updates the Android SDK dependency from v5 to v6 to use BillingClient 5. This version of BillingClient brings an entire new subscription model which has resulted in large changes across the entire SDK.

Migration Guides

  • See Android Native - 5.x to 6.x Migration for a more thorough explanation of the new Google subscription model announced with BillingClient 5 and how to take advantage of it in V6. This guide includes tips on product setup with the new model.

New SubscriptionOption concept

Purchasing

In v4, a Google Play Android Package or StoreProduct represented a single purchaseable entity, and free trials or intro offers would automatically be applied to the purchase if the user was eligible.

Now, in Unity v5, a Google Play Android Package or StoreProduct represents a duration of a subscription and contains all the ways to purchase that duration -- any offers and its base plan. Each of these purchase options are SubscriptionOptions. When passing a Package to purchasePackage() or StoreProduct to purchaseStoreProduct(), the SDK will use the following logic to choose which SubscriptionOption to purchase:

  • Filters out offers with "rc-ignore-offer" tag
  • Uses SubscriptionOption with the longest free trial or cheapest first phase
    • Only offers the user is eligible will be applied
  • Falls back to base plan

For more control, purchase subscription options with the new purchaseSubscriptionOption() method.

Models

StoreProduct now has a few new properties use for Google Play Android:

  • defaultOption
    • A subscription option that will automatically be applied when purchasing a Package or StoreProduct
  • subscriptionOptions
    • A list of subscription options (could be null)

Observer Mode

Observer mode is still supported in v5. Other than updating the SDK version, there are no changes required.

Offline Entitlements

✨ With this new feature, even if our main and backup servers are down, the SDK can continue to process purchases. This is enabled transparently to the user, and when the servers come back online, the SDK automatically syncs the information so it can be visible in the dashboard.

Offering Metadata

✨ Metadata allows attaching arbitrary information as key/value pairs to your Offering to control how to display your products inside your app. The metadata you configure in an Offering is available from the RevenueCat SDK. For example, you could use it to remotely configure strings on your paywall, or even URLs of images shown on the paywall.

See the metadata documentation for more info!

4.16.0

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.18.0 (#288) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.212.2 to 2.213.0 (#285) via dependabot[bot] (@dependabot[bot])

4.15.0

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.16.0 (#282) via RevenueCat Git Bot (@RCGitBot)

4.14.0

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.15.0 (#279) via RevenueCat Git Bot (@RCGitBot)
  • Bump danger from 9.2.0 to 9.3.0 (#275) via dependabot[bot] (@dependabot[bot])

Other Changes

  • Update fastlane-plugin-revenuecat version (#277) via Cesar de la Vega (@vegaro)

4.13.3

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.14.3 (#272) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.212.1 to 2.212.2 (#270) via dependabot[bot] (@dependabot[bot])

4.13.2

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.14.2 (#267) via RevenueCat Git Bot (@RCGitBot)

4.13.1

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.14.1 (#263) via RevenueCat Git Bot (@RCGitBot)

4.13.0

New Features

  • add ImmediateAndChargeFullPrice proration mode (#258) via Andy Boedo (@aboedo)

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.14.0 (#260) via RevenueCat Git Bot (@RCGitBot)

Other Changes

  • deprecate UsesStoreKit2IfAvailable field (#259) via Andy Boedo (@aboedo)

4.12.2

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.5 (#255) via RevenueCat Git Bot (@RCGitBot)

4.12.1

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.4 (#252) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.212.0 to 2.212.1 (#251) via dependabot[bot] (@dependabot[bot])

Other Changes

  • Runs integration tests on main too (#249) via Cesar de la Vega (@vegaro)

4.12.0

New Features

  • Adds Purchases.SetLogHandler (#237) via Cesar de la Vega (@vegaro)

Bugfixes

  • Fix for NSInvalidArgumentException in GetPromotionalOffer (#245) via Cesar de la Vega (@vegaro)

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.3 (#247) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.2 (#244) via RevenueCat Git Bot (@RCGitBot)
  • Bump fastlane from 2.211.0 to 2.212.0 (#243) via dependabot[bot] (@dependabot[bot])

4.11.0

New Features

  • Added Purchases.SetLogLevel (#226) via NachoSoto (@NachoSoto)

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.1 (#240) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.13.0 (#239) via RevenueCat Git Bot (@RCGitBot)

4.10.1

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.12.1 (#235) via RevenueCat Git Bot (@RCGitBot)

Other Changes

  • Adds dependabot (#234) via Cesar de la Vega (@vegaro)

4.10.0

Dependency Updates

  • Update gems (#231) via Cesar de la Vega (@vegaro)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.12.0 (#230) via RevenueCat Git Bot (@RCGitBot)

Other Changes

  • .gitignore .vsconfig Visual Studio files (#227) via NachoSoto (@NachoSoto)

4.9.0

New Features

  • Add StoreProduct.SubscriptionPeriod (#222) via Cesar de la Vega (@vegaro)

Dependency Updates

4.8.0

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.8.0 (#217) via RevenueCat Git Bot (@RCGitBot)

Other Changes

  • Update Gemfile.lock (#218) via Cesar de la Vega (@vegaro)

4.7.0

New Features

  • Added SetCleverTapID, SetMixpanelDistinctID and SetFirebaseAppInstanceID (#209) via Andy Boedo (@aboedo)

Dependency Updates

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.7.0 (#211) via RevenueCat Git Bot (@RCGitBot)

Other Changes

  • Adds missing params for better changelogs when bumping (#214) via Cesar de la Vega (@vegaro)
  • Update fastlane plugin (#213) via Cesar de la Vega (@vegaro)
  • added extra link to the correct file for symlinking sources (#210) via Andy Boedo (@aboedo)
  • add openupm badge (#204) via Andy Boedo (@aboedo)
  • remove stalebot in favor of SLAs in Zendesk (#208) via Andy Boedo (@aboedo)
  • Update fastlane-plugin-revenuecat_internal to latest version (#206) via Cesar de la Vega (@vegaro)

4.6.4

Other Changes

  • Support unity package manager (UPM) (#175) via Toni Rico (@tonidero)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.4 (#201) via RevenueCat Git Bot (@RCGitBot)

4.6.3

Other Changes

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.3 (#198) via RevenueCat Git Bot (@RCGitBot)

4.6.2

Other Changes

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.2 (#195) via RevenueCat Git Bot (@RCGitBot)

4.6.1

Other Changes

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.1 (#192) via RevenueCat Git Bot (@RCGitBot)

4.6.0

Other Changes

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.5.0 (#189) via RevenueCat Git Bot (@RCGitBot)

4.5.3

Other Changes

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.4.4 (#186) via RevenueCat Git Bot (@RCGitBot)

4.5.2

Other Changes

  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.4.3 (#183) via RevenueCat Git Bot (@RCGitBot)
  • Fix CircleCI deployment workflow (#180) via Toni Rico (@tonidero)

4.5.1

Other Changes

  • Fix github release workflow (#177) via Toni Rico (@tonidero)
  • [AUTOMATIC BUMP] Updates purchases-hybrid-common to 4.4.1 (#178) via RevenueCat Git Bot (@RCGitBot)
  • Update Fastlane plugin (#173) via Cesar de la Vega (@vegaro)

4.5.0

Other Changes

  • [AUTOMATIC] Updates purchases-hybrid-common to 4.4.0 (#172) via RevenueCat Git Bot (@RCGitBot)
  • Makes hold job depend on tests (#170) via Cesar de la Vega (@vegaro)
  • Adds missing parameter to bump_version_update_changelog_create_pr (#169) via Cesar de la Vega (@vegaro)

4.4.1

Other Changes

  • [AUTOMATIC] Updates purchases-hybrid-common to 4.3.6 (#166) via RevenueCat Git Bot (@RCGitBot)
  • Update fastlane-plugin-revenuecat_internal (#167) via Cesar de la Vega (@vegaro)

4.4.0

Bugfixes

  • fix compatibility issues with C# 7.3 (#162) via Andy Boedo (@aboedo)

Other Changes

  • [AUTOMATIC] Updates purchases-hybrid-common to 4.3.2 (#163) via RevenueCat Git Bot (@RCGitBot)
  • Release trains (#159) via Cesar de la Vega (@vegaro)

4.3.1

Bugfixes

  • Update receivedUpdatedCustomerInfo delegate (#158) via Cesar de la Vega (@vegaro)

Other Changes

  • Update fastlane plugin (#156) via Cesar de la Vega (@vegaro)
  • Add new SetUsesStoreKit2IfAvailable api to api tests (#154) via Toni Rico (@tonidero)

4.3.0

New Features

  • Support for usesStoreKit2IfAvailable config option (#151) via Toni Rico (@tonidero)

Bugfixes

  • Fix support for DangerousSettings in iOS (#152) via Toni Rico (@tonidero)

4.2.0

⚠️ Important: If you're using RevenueCat along with Unity IAP side-by-side ⚠️

Starting with this version you need to use Unity IAP 4.4.0+ if you are using Unity IAP together with RevenueCat in your project. You can update from Unity Package Manager. If you need to use an older version of Unity IAP, you can continue to use purchases-unity < 4.2.0.

API Changes

  • StoreTransaction: RevenueCatId and ProductId have been deprecated in favor of TransactionIdentifier and ProductIdentifier respectively. (#145) via Toni Rico (@tonidero)

Bugfixes

  • Fix example compatibility with Unity 2020 (#139) via Andy Boedo (@aboedo)

Other Changes

  • Subtester: Fix unity android export (#142) via Andy Boedo (@aboedo)
  • Update AMAZON-INSTRUCTIONS.md (#143) via Andy Boedo (@aboedo)

4.1.0

  • Introduced New AdServices Integration on iOS. Call EnableAdServicesAttributionTokenCollection() to enable this integration. More information in our docs and in the announcement blogpost.

4.0.0

RevenueCat Unity SDK v4 is here!!

Dancing cats

Full Changelog

Amazon Appstore Support

We have introduced support for using the Amazon Appstore. We have extensively tested this, and there are some apps using our pre-release Amazon versions in production.

However, we have found some inconsistencies in the way Amazon Appstore prices are reported. We are actively working on patching these inconsistencies.

Please help us help you by reporting any issues you find. New RevenueCat Issue.

You can enable Amazon Appstore support by configuring the SDK using the new RevenueCatAPIKeyAmazon field.

For more information around configuration please take a look at the Amazon Appstore section in our docs. The official Amazon In-App Purchasing docs also contain very valuable information, especially around testing and best practices.

⚠️ ⚠️ Important ⚠️ ⚠️ In order to use Unity IAP < 4.4.0 with RevenueCat in Observer mode, you need to use the Purchases-UnityIAP.unityPackage. For Unity IAP >= 4.4.0, you can use the Purchases.unitypackage package.

For Amazon installation instructions please follow take a look at the Amazon instructions document

StoreKit 2 support

This version of the SDK automatically uses StoreKit 2 APIs under the hood only for APIs that the RevenueCat team has determined work better than StoreKit 1.

New types and cleaned up naming

New types that wrap native types from Apple, Google and Amazon, and we cleaned up the naming of other types and methods for a more consistent experience.

Removed APIs

  • Identify and CreateAlias have been removed in favor of LogIn.
  • Reset has been removed in favor of LogOut.
  • GetEntitlements has been removed in favor of GetOfferings.
  • AttributionKey and Purchases.AddAttributionData have been removed in favor of Set<NetworkID> methods.
  • revenueCatAPIKey has been removed in favor of revenueCatAPIKeyApple, revenueCatAPIKeyGoogle and revenueCatAPIKeyAmazon.

Renamed APIs

3.x 4.0.0
PurchaserInfo CustomerInfo
Transaction StoreTransaction
Product StoreProduct
PaymentDiscount PromotionalOffer
Purchases.RestoreTransactions Purchases.RestorePurchases
Purchases.GetPaymentDiscount Purchases.GetPromotionalOffer
Purchases.UpdatedPurchaserInfoListener Purchases.UpdatedCustomerInfoListener
Discount.identifier Discount.Identifier
Discount.price Discount.Price
Discount.priceString Discount.PriceString
Discount.cycles Discount.Cycles
Discount.period Discount.Period
Discount.unit Discount.Unit
Discount.periodUnit Discount.PeriodUnit
Discount.periodNumberOfUnits Discount.PeriodNumberOfUnits
Error.message Error.Message
Error.code Error.Code
Error.underlyingErrorMessage Error.UnderlyingErrorMessage
Error.readableErrorCode Error.ReadableErrorCode

New APIs

  • Introduced the ability to configure the SDK programmatically through calling Configure #125

Other

  • Added docstrings for most public entities. #131, #130, #128

4.0.0-rc.2

New changes since Release Candidate 1

  • Updated purchases-hybrid-common to 3.3.0 Changelog here
  • Updated purchases-android to 5.3.0, which fixes a null pointer exception when calling configure from a thread in Android. Changelog here
  • Updated instructions for observer mode, which don't require excluding the billing client anymore.

4.0.0-rc.1

⚠️ ⚠️ Important ⚠️ ⚠️ Observer mode for Amazon is not supported yet.

⚠️ ⚠️ Important ⚠️ ⚠️ In order to use Unity IAP in order with RevenueCat in Observer mode, you need to use the Purchases-UnityIAP.unityPackage.

For Amazon installation instructions please follow take a look at the Amazon instructions document

Features

Amazon Appstore Support

We have introduced support for using the Amazon Appstore. We have extensively tested this, and there are some apps using our pre-release Amazon versions in production.

However, we have found some inconsistencies in the way Amazon Appstore prices are reported. We are actively working on patching these inconsistencies.

Please help us help you by reporting any issues you find. New RevenueCat Issue.

You can enable Amazon Appstore support by configuring the SDK using the new RevenueCatAPIKeyAmazon field.

For more information around configuration please take a look at the Amazon Appstore section in our docs. The official Amazon In-App Purchasing docs also contain very valuable information, especially around testing and best practices.

StoreKit 2 support

This version of the SDK automatically uses StoreKit 2 APIs under the hood only for APIs that the RevenueCat team has determined work better than StoreKit 1.

New types and cleaned up naming

New types that wrap native types from Apple, Google and Amazon, and we cleaned up the naming of other types and methods for a more consistent experience.

Removed APIs

  • Identify and CreateAlias have been removed in favor of LogIn.
  • Reset has been removed in favor of LogOut.
  • GetEntitlements has been removed in favor of GetOfferings.
  • AttributionKey and Purchases.AddAttributionData have been removed in favor of Set<NetworkID> methods.
  • revenueCatAPIKey has been removed in favor of revenueCatAPIKeyApple, revenueCatAPIKeyGoogle and revenueCatAPIKeyAmazon.

Renamed APIs

3.x 4.0.0
PurchaserInfo CustomerInfo
Transaction StoreTransaction
Product StoreProduct
PaymentDiscount PromotionalOffer
Purchases.RestoreTransactions Purchases.RestorePurchases
Purchases.GetPaymentDiscount Purchases.GetPromotionalOffer
Purchases.UpdatedPurchaserInfoListener Purchases.UpdatedCustomerInfoListener
Discount.identifier Discount.Identifier
Discount.price Discount.Price
Discount.priceString Discount.PriceString
Discount.cycles Discount.Cycles
Discount.period Discount.Period
Discount.unit Discount.Unit
Discount.periodUnit Discount.PeriodUnit
Discount.periodNumberOfUnits Discount.PeriodNumberOfUnits
Error.message Error.Message
Error.code Error.Code
Error.underlyingErrorMessage Error.UnderlyingErrorMessage
Error.readableErrorCode Error.ReadableErrorCode

3.5.3

When installing this release, make sure to make a fresh installation by removing the RevenueCat folder before importing the package. That way obsolete files are deleted from your project.

3.5.2

3.5.1

  • Fixed issue where builds got rejected when uploading to App Store Connect because of the existence of a Frameworks folder in the archive #84
  • Added post-install script that automatically links the StoreKit framework to the main target #85
  • Bumppurchases-hybrid-common to 2.0.0 Changelog here
  • Bump purchases-ios to 3.14.0 (Changelog here)
  • Bump purchases-android to 4.6.0 (Changelog here)

3.5.0

3.4.2

3.4.1

3.4.0

  • Adds iOS promotional offers support #59

3.3.0

Identity V3:

In this version, we’ve redesigned the way that user identification works. Detailed docs about the new system are available here.

New methods

  • Introduces LogIn, a new way of identifying users, which also returns whether a new user has been registered in the system. LogIn uses a new backend endpoint.
  • Introduces LogOut, a replacement for Reset.

Deprecations

  • deprecates CreateAlias in favor of LogIn.
  • deprecates Identify in favor of LogIn.
  • deprecates Reset in favor of LogOut.
  • deprecates SetAllowSharingStoreAccount in favor of dashboard-side configuration. #48

Other

3.2.0

  • Added canMakePaymentsMethod (#52)
  • Fixed missing meta files for Subtester sample app (#47)
  • Bumped purchases-hybrid-common to 1.7.1 Changelog here
  • Bumped purchases-ios to 3.11.1 Changelog here
  • Bumped purchases-android to 4.2.1 Changelog here

3.1.1

3.1.0

  • iOS:
    • Added a new method setSimulatesAskToBuyInSandbox, that allows developers to test deferred purchases easily.
  • Bumped purchases-hybrid-common to 1.6.1 Changelog here
  • Bumped purchases-ios to 3.10.6 Changelog here
  • Bumped purchases-android to 4.0.4 Changelog here #43

3.0.1

  • Fixed a crash in iOS when parsing dates in milliseconds, as well as a bug in Android that caused dates that were reported as milliseconds to actually have values in seconds. #39
  • Bumped purchases-hybrid-common to 1.5.1 Changelog here

3.0.0

  • removes deprecated MakePurchase, replaced by PurchaseProduct
  • iOS:
    • added new method, syncPurchases, that enables syncing the purchases in the local receipt with the backend without risking a password prompt. The method was already available on Android.
    • added a new method, presentCodeRedemptionSheet, for offer codes redemption.
    • fixed a bug where values for dates in milliseconds were actually in seconds (RevenueCat/purchases-hybrid-common#62)
  • Bumped purchases-hybrid-common to 1.5.0 Changelog here
  • Bumped purchases-ios to 3.9.2 Changelog here
  • Bumped purchases-android to 4.0.1 Changelog here

2.3.1

2.3.0

  • Bumped common files to 1.4.4 Changelog here
  • Bumped iOS to 3.7.2 Changelog here
  • Bumped Android to 3.5.2 Changelog here
  • Added a new property NonSubscriptionTransactions in PurchaserInfo to better manage non-subscriptions
  • Attribution V2:
  • Deprecated addAttribution in favor of setAdjustId, setAppsflyerId, setFbAnonymousId, setMparticleId.
  • Added support for OneSignal via setOnesignalId
  • Added setMediaSource, setCampaign, setAdGroup, setAd, setKeyword, setCreative, and collectDeviceIdentifiers

2.2.1

  • Fixes duplicated files error in iOS.

2.2.0

  • Adds proxyURL property, 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.
  • Adds userDefaultsSuiteName. Set this to use a specific NSUserDefaults suite for RevenueCat. This might be handy if you are deleting all NSUserDefaults in your app and leaving RevenueCat in a bad state.
  • Update to ExternalDependencyManager 1.2.156
  • A lot of internal changes:
    • iOS now downloads the dependency from CocoaPods
    • Android downloads the common code from Maven
    • Removed a bunch of scripts
    • Removed the Android project and added the files to the plugin folder
    • Added platform version and name to the http headers
    • Added a script to create the unitypackage
    • Moved inner classes to their own files
    • Use SimpleJSON instead of JSONUtility

iOS Native SDK Update 3.4.0

Android Native SDK Update 3.2.0

2.1.0

  • Adds Subscriber Attributes, which allow developers to store additional, structured information for a user in RevenueCat. More info: https://docs.revenuecat.com/docs/user-attributes.
  • Added new method to invalidate the purchaser info cache, useful when promotional purchases are granted from outside the app.

iOS Native SDK Update 3.2.2

Android Native SDK Update 3.1.0

2.0.9

  • Fixes updated PurchaserInfo listener in iOS

2.0.8

  • Fixes active entitlements in iOS and the format of the dates in the EntitlementInfo objects in iOS

2.0.7

  • Adds optional type parameter to GetProducts call

2.0.6

  • Adds CheckTrialOrIntroductoryPriceEligibility

2.0.5

  • Fixes Product class
  • Removes unnecessary iOS import
  • Adds missing iOS files

2.0.4

  • Updates Android library to 3.0.3

2.0.3

  • Makes Offerings.Current nullable

2.0.2

  • Rolls back Play services resolver to v1.2.132

2.0.1

  • Makes packages inside Offering nullable.

2.0.0

  • PurchaserInfo.LatestExpirationDate can be null now, it was equal to epoch before if there was no expiration date. Same for PurchaserInfo.AllExpirationDates, that can contain nullable values now.
  • Added Play Services Resolver (https://github.com/googlesamples/unity-jar-resolver) to help with the Android dependencies management. Make sure you import it when importing our package.
  • Support for new Offerings system.
  • Deprecates makePurchase methods. Replaces with purchasePackage
  • Deprecates getEntitlements method. Replaces with getOfferings
  • See our migration guide for more info: https://docs.revenuecat.com/v3.0/docs/offerings-migration
  • Updates to BillingClient 2.0.3. If finishTransactions is set to false (or observerMode is true when configuring the SDK), this SDK won't acknowledge any purchase and you have to do it yourself.
  • Adds proration mode support on upgrades/downgrades
  • Adds more PurchaserInfo missing properties. activeEntitlements, expirationsForActiveEntitlements and purchaseDatesForActiveEntitlements have been removed from PurchaserInfo. For more info check out https://docs.revenuecat.com/docs/purchaserinfo
  • New identity changes:
    • 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 to Purchases.sharedInstance
    • Improved offline use

1.2.2

  • Updates Android SDK to 3.4.1 to include multiple bugfixes.

1.2.1

  • Fixes introductory offer period normalization in iOS.

1.2.0

1.1.0

  • Updates iOS SDK to 2.3.0. Check out the changelog for a full list of changes https://github.com/RevenueCat/purchases-ios/releases/tag/2.3.0
  • Updates Android SDK to 2.2.5. Check out the changelog for a full list of changes https://github.com/RevenueCat/purchases-android/releases/tag/2.2.5
  • ** BREAKING CHANGE ** makePurchase parameter oldSKUs is not an array anymore, it only accepts a string now. This is due to changes in the BillingClient.
  • AddAttributionData can be called before the SDK has been setup. A network user identifier can be send to the addAttribution function, replacing the previous rc_appsflyer_id parameter.
  • Adds an optional configuration boolean observerMode. This will set the value of finishTransactions at configuration time.

Android only:

  • addAttribution will automatically add the rc_gps_adid parameter.
  • ** ANDROID BREAKING CHANGE ** Call syncPurchases to send purchases information to RevenueCat after any restore or purchase if you are using the SDK in observerMode. See our guide on Migrating Subscriptions for more information on syncPurchases: https://docs.revenuecat.com/docs/migrating-existing-subscriptions

iOS only

  • addAttribution will automatically add the rc_idfa and rc_idfv parameters if the AdSupport and UIKit frameworks are included, respectively.
  • Apple Search Ad attribution can be automatically collected by setting the automaticAttributionCollection boolean to true before the SDK is configured.

1.0.2

  • Updates iOS SDK to 2.1.1

1.0.1

  • Fixing crash on iOS when missing an underlying error

1.0.0

  • Updates SDKs to 2.1.0. This means there is new functions added:
  • Changes the SDK to use callback functions instead of delegates. There is a UpdatedPurchaserInfoListener that sends a purchaser info object. This listener is used to listen to changes in the purchaser info.
  • Added setDebugLogsEnabled to display debug logs.
  • Added getPurchaserInfo function to get the latest purchaser info known by the SDK.
  • Added getEntitlements
  • Added getAppUserId

0.6.1

  • Adds setFinishTransactions for iOS
  • Adds more attribution networks

0.6.0

  • Updates iOS SDK to 1.20 and Android SDK to 1.4.0.
  • Adds identify, create alias and reset call

0.5.4

  • Fixes onRestoreTransactions never being called.

0.5.3

  • Fixes onRestoreTransactions not being called if there are no tokens.

0.5.2

  • Fixes crash due to not able to find Kotlin dependency.

0.5.1

  • Adds requestDate to the purchaser info to avoid edge cases.

0.5.0

  • Enhance the PurchasesListener protocol to include methods for restore succeeded and failed.

0.4.2

  • Add Android support for Adjust

0.4.1

  • Add support for idfa data in Adjust