Skip to main content

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings
  • 774 Changelog entries
featured-image
featured-image
featured-image

iOS 4.25.3

This release is compatible with Xcode 15 beta 6 and visionOS beta 3 Bugfixes visionOS: support for Xcode 15 beta 6 (#2989) via NachoSoto (@NachoSoto) CachingProductsManager: avoid crash when caching different products with same identifier (#2979) via NachoSoto (@NachoSoto) PurchasesOrchestrator: disambiguate transactions from the queue (#2890) via NachoSoto (@NachoSoto) Performance Improvements StoreKit2TransactionListener: handle transactions asynchronously (#2910) via NachoSoto (@NachoSoto) Other Changes Atomic: avoid race conditions modifying dictionaries (#2981) via NachoSoto (@NachoSoto) Logging: avoid logging "updating offerings" when request is cached (#2904) via NachoSoto (@NachoSoto) StoreKit2TransactionListener: converted into an actor (#2909) via NachoSoto (@NachoSoto) Integration Tests: added more observer mode tests (#2905) via NachoSoto (@NachoSoto) Created PostedTransactionCache (#2911) via NachoSoto (@NachoSoto) IntroEligibility: changed products to Set<String> (#2976) via NachoSoto (@NachoSoto) AdServices: Rename postAdServicesTokenIfNeeded() to postAdServicesTokenOncePerInstallIfNeeded() (#2968) via Josh Holtz (@joshdholtz) SK1StoreProduct: changed productType warning to debug (#2957) via NachoSoto (@NachoSoto) PrivacyInfo.xcprivacy: added UserDefaults to access API types (#2913) via NachoSoto (@NachoSoto) Integration Tests: new test to verify that SK1 purchases don't leave SK2 unfinished transactions (#2906) via NachoSoto (@NachoSoto) Logging: log entire cache key with verbose logs (#2888) via NachoSoto (@NachoSoto) StoreProduct: added test covering warning log (#2897) via NachoSoto (@NachoSoto) CustomEntitlementComputation: use custom API key (#2879) via Toni Rico (@tonidero) CachingProductsManager: removed duplicate log and added tests (#2898) via NachoSoto (@NachoSoto) Xcode 15 beta 5: fixed test compilation (#2885) via NachoSoto (@NachoSoto) To view new release, visit https://github.com/RevenueCat/purchases-ios/releases/tag/4.25.3

featured-image

Unity 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! To view new release, visit https://github.com/RevenueCat/purchases-unity/releases/tag/5.0.0

featured-image
featured-image

iOS 4.25.2

This release is compatible with Xcode 15 beta 5 and visionOS beta 2 Bugfixes xrOS: fixed SubscriptionStoreView for visionOS beta 2 (#2884) via Josh Holtz (@joshdholtz) Performance Improvements Perf: update CustomerInfo cache before anything else (#2865) via NachoSoto (@NachoSoto) Other Changes SimpleApp: added support for localization (#2880) via NachoSoto (@NachoSoto) TestStoreProduct: made available on release builds (#2861) via NachoSoto (@NachoSoto) Tests: increased default logger capacity (#2870) via NachoSoto (@NachoSoto) CustomEntitlementComputation: removed invalidateCustomerInfoCache (#2866) via NachoSoto (@NachoSoto) SimpleApp: updates for TestFlight compatibility (#2862) via NachoSoto (@NachoSoto) BasePurchasesTests: consolidate to only initialize one DeviceCache (#2863) via NachoSoto (@NachoSoto) Codable: debug log entire JSON when decoding fails (#2864) via NachoSoto (@NachoSoto) IntegrationTests: replaced Purchases.shared with a throwing property (#2867) via NachoSoto (@NachoSoto) NetworkError: 2 new tests to ensure underlying error is included in description (#2843) via NachoSoto (@NachoSoto) Add SPM Package.resolved for Xcode Cloud (#2844) via NachoSoto (@NachoSoto) CustomEntitlementComputation: added integration test for cancellations (#2849) via NachoSoto (@NachoSoto) CustomEntitlementComputation: removed syncPurchases/restorePurchases (#2854) via NachoSoto (@NachoSoto) To view new release, visit https://github.com/RevenueCat/purchases-ios/releases/tag/4.25.2

featured-image
featured-image
featured-image

Unity 5.0.0-alpha.1

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 applie 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! To view new release, visit https://github.com/RevenueCat/purchases-unity/releases/tag/5.0.0-alpha.1

featured-image

Android 6.8.0

New Features Introduced Custom Entitlements Computation mode. This is new library intended for apps that will do their own entitlement computation separate from RevenueCat. It's distributed as a separate artifact in Maven. Apps using this mode rely on webhooks to signal their backends to refresh entitlements with RevenueCat. See the demo app for an example and usage instructions. Custom entitlements: add README and other improvements (#1167) via Andy Boedo (@aboedo) Update Custom Entitlements Sample app (#1166) via Andy Boedo (@aboedo) purchase coroutine (#1142) via Andy Boedo (@aboedo) Add switchUser (#1156) via Cesar de la Vega (@vegaro) CustomEntitlementsComputation: disable first listener callback when set (#1152) via Andy Boedo (@aboedo) CustomEntitlementsComputation: Prevent posting subscriber attributes in post receipt (#1151) via Andy Boedo (@aboedo) Fix customEntitlementComputation library deployment (#1169) via Toni Rico (@tonidero) CustomEntitlementComputation: Configure method for customEntitlementComputation mode (#1168) via Toni Rico (@tonidero) Add publish system for customEntitlementComputation package (#1149) via Cesar de la Vega (@vegaro) Use purchase coroutine in CustomEntitlementComputationSample (#1162) via Cesar de la Vega (@vegaro) Adds CustomEntitlementComputationSample (#1160) via Cesar de la Vega (@vegaro) Fix tests in customEntitlementComputation after merges (#1161) via Toni Rico (@tonidero) CustomEntitlementComputation: Remove custom entitlement computation flavor for amazon module (#1158) via Toni Rico (@tonidero) CustomEntitlementComputation: Generate dokka docs only for defaults flavor (#1159) via Toni Rico (@tonidero) CustomEntitlementComputation: Create different PurchasesConfiguration that requires an appUserId parameter (#1154) via Toni Rico (@tonidero) CustomEntitlementComputation: New Purchases class (#1153) via Toni Rico (@tonidero) CustomEntitlementComputation: Disable automatic cache refresh (#1157) via Toni Rico (@tonidero) Add customEntitlementComputation flavor (#1147) via Toni Rico (@tonidero) Make customEntitlementComputation singular (#1148) via Toni Rico (@tonidero) Disable offline entitlements in custom entitlements computation mode (#1146) via Toni Rico (@tonidero) Remove integration test flavor (#1143) via Toni Rico (@tonidero) Add header to requests when in custom entitlement computation mode (#1145) via Toni Rico (@tonidero) Add internal customEntitlementsComputation mode to app config (#1141) via Toni Rico (@tonidero) New Coroutines awaitPurchase is available as a coroutine-friendly alternative to purchase(). (#1142) via Andy Boedo (@aboedo) Dependency Updates Bump fastlane from 2.213.0 to 2.214.0 (#1140) via dependabot[bot] (@dependabot[bot]) Other changes CI: make all Codecov jobs informational (#1155) via Cesar de la Vega (@vegaro) Creates PurchasesOrchestrator (#1144) via Cesar de la Vega (@vegaro) To view new release, visit https://github.com/RevenueCat/purchases-android/releases/tag/6.8.0

featured-image

iOS 4.25.1

Dependency Updates Bump fastlane from 2.213.0 to 2.214.0 (#2824) via dependabot[bot] (@dependabot[bot]) Other Changes MainThreadMonitor: don't crash if there is no test in progress (#2838) via NachoSoto (@NachoSoto) CI: fixed Fastlane APITester lanes (#2836) via NachoSoto (@NachoSoto) Integration Tests: workaround Swift runtime crash (#2826) via NachoSoto (@NachoSoto) @EnsureNonEmptyArrayDecodable (#2831) via NachoSoto (@NachoSoto) iOS 17: added tests for simulating cancellations (#2597) via NachoSoto (@NachoSoto) CI: make all Codecov jobs informational (#2828) via NachoSoto (@NachoSoto) MainThreadMonitor: check deadlocks only ever N seconds (#2820) via NachoSoto (@NachoSoto) New @NonEmptyStringDecodable (#2819) via NachoSoto (@NachoSoto) MockDeviceCache: avoid using real UserDefaults (#2814) via NachoSoto (@NachoSoto) throwAssertion: fixed Xcode 15 compilation (#2813) via NachoSoto (@NachoSoto) CustomEntitlementsComputation: fixed API testers (#2815) via NachoSoto (@NachoSoto) PackageTypeTests: fixed iOS 12 (#2807) via NachoSoto (@NachoSoto) Tests: avoid race-condition in leak detection (#2806) via NachoSoto (@NachoSoto) Revert "Unit Tests: removed leak detection" (#2805) via NachoSoto (@NachoSoto) PackageType: Codable implementation (#2797) via NachoSoto (@NachoSoto) SystemInfo.init no longer throws (#2803) via NachoSoto (@NachoSoto) Trusted Entitlements: add support for signing POST body (#2753) via NachoSoto (@NachoSoto) Tests: unified default timeouts (#2801) via NachoSoto (@NachoSoto) Tests: removed forced-unwrap (#2799) via NachoSoto (@NachoSoto) Tests: added missing super.setUp() (#2804) via NachoSoto (@NachoSoto) Replaced FatalErrorUtil with Nimble (#2802) via NachoSoto (@NachoSoto) Tests: fixed another flaky test (#2795) via NachoSoto (@NachoSoto) TimingUtil: improved tests by using Clock (#2794) via NachoSoto (@NachoSoto) IgnoreDecodeErrors: log decoding error (#2778) via NachoSoto (@NachoSoto) TestLogHandler: changed all tests to explicitly deinitialize it (#2784) via NachoSoto (@NachoSoto) LocalReceiptParserStoreKitTests: fixed flaky test failure (#2785) via NachoSoto (@NachoSoto) Unit Tests: removed leak detection (#2792) via NachoSoto (@NachoSoto) Tests: fixed another flaky failure with asynchronous check (#2786) via NachoSoto (@NachoSoto) To view new release, visit https://github.com/RevenueCat/purchases-ios/releases/tag/4.25.1