Skip to content

Releases: RevenueCat/purchases-ios

5.33.0

17 Jul 09:42
Compare
Choose a tag to compare

RevenueCat SDK

🐞 Bugfixes

  • Fix rendering of buttons in Mac Catalyst mode when optimized for Mac. (#5372) via Chris Lindsay (@clindsay3)
  • Update default height of paywalls when using .presentIfNeeded on Mac Catalyst to something that is more reasonable. (#5378) via Chris Lindsay (@clindsay3)

Customer Center

✨ New Features

  • Add custom change plans support for customer center (#5379) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • Fix VirtualCurrencyBalancesScreen Preview on Catalyst (Optimized For Mac) (#5387) via Will Taylor (@fire-at-will)
  • Add @_spi to initializers of virtual currencies APIs (#5384) via Antonio Pallares (@ajpallares)
  • Use SwiftUI instead of UIKit to present an alert in Paywall Tester app (#5381) via Chris Lindsay (@clindsay3)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#5380) via RevenueCat Git Bot (@RCGitBot)
  • Add build configurations for tuist workspace (#5364) via Facundo Menzella (@facumenzella)
  • Adding deep link for testing in Paywalls Tester (#5238) via Josh Holtz (@joshdholtz)
  • Wait a max of 20 minutes for TestFlight processing (#5153) via Josh Holtz (@joshdholtz)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#5373) via RevenueCat Git Bot (@RCGitBot)
  • Generate Mac Catalyst screenshots of Paywall components to be sent to EmergeTools (#5303) via Chris Lindsay (@clindsay3)
  • Use a more accurate method for generating a screenshot of a UIView (#5352) via Chris Lindsay (@clindsay3)
  • Upload screenshots to Emerge in addition to pushing them to the paywall validation repo. (#5351) via Chris Lindsay (@clindsay3)
  • Add a few additional VC integration tests (#5367) via Will Taylor (@fire-at-will)
  • [CI] Use m1 instead of m2 executor (#5369) via Mark Villacampa (@MarkVillacampa)

5.32.0

07 Jul 18:47
Compare
Choose a tag to compare

RevenueCat SDK

🐞 Bugfixes

  • Fixes API tests after changes to public API (#5365) via Pol Piella Abadia (@polpielladev)

Virtual Currencies

✨ New Features

🔄 Other Changes

  • [DX-457] Re-apply Health SDK logging on app launch (#5360) via Pol Piella Abadia (@polpielladev)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#5361) via RevenueCat Git Bot (@RCGitBot)
  • Add basics for a working tuist workspace (#5248) via Facundo Menzella (@facumenzella)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#5357) via RevenueCat Git Bot (@RCGitBot)
  • Fix one flaky unit test (#5356) via Antonio Pallares (@ajpallares)

5.31.0

03 Jul 16:30
Compare
Choose a tag to compare

RevenueCat SDK

Customer Center

✨ New Features

  • Add smoother loading animation to SubscriptionDetailView (#5329) via Facundo Menzella (@facumenzella)

🐞 Bugfixes

  • Fix google products display for customer center (#5349) via Facundo Menzella (@facumenzella)

RevenueCatUI SDK

Customer Center

✨ New Features

  • Preferred UI locale for UI components (#5292) via Antonio Pallares (@ajpallares)
  • Remove trailing text for PurchaseCardView, and simplify billing information. (#5300) via Facundo Menzella (@facumenzella)
  • Add account details to single purchase view (#5327) via Facundo Menzella (@facumenzella)

🐞 Bugfixes

  • Fix broken Customer Center strings (#5311) via Cesar de la Vega (@vegaro)

🔄 Other Changes

5.30.0

25 Jun 16:38
Compare
Choose a tag to compare

RevenueCat SDK

🐞 Bugfixes

  • Improve paywall view load time if using offering identifier by using paywall offerings cache (#5319) via Josh Holtz (@joshdholtz)

Paywallv2

🐞 Bugfixes

  • Improve resolution of locale in paywalls components localizations (#5316) via Antonio Pallares (@ajpallares)
  • Fix paywall locale receiving UN M.49 standard localization (#5309) via Antonio Pallares (@ajpallares)

RevenueCatUI SDK

Customer Center

✨ New Features

  • Dont be explicit on store for paddle, web, rcBilling, external (#5325) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • Move the Paywall-Screenshots test plan into the RevenueCatUITestsDev scheme, and add a host application to run them. (#5320) via Chris Lindsay (@chrisvasselli)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#5318) via RevenueCat Git Bot (@RCGitBot)
  • Update validation of testCanGetOfferings StoreKit integration test (#5313) via Antonio Pallares (@ajpallares)

5.30.0-vc-beta.4

25 Jun 20:13
Compare
Choose a tag to compare
5.30.0-vc-beta.4 Pre-release
Pre-release

RevenueCat SDK

Virtual Currencies

Warning: the virtual currency features are currently in beta and may change without notice.

Dedicated Function for Fetching Virtual Currencies

Virtual Currencies have been moved out of CustomerInfo and can now be fetched using the new Purchases.shared.virtualCurrencies() function, like so:

// With Async/Await
let virtualCurrencies = try? await Purchases.shared.virtualCurrencies()

// With Completion Handlers
Purchases.shared.virtualCurrencies { virtualCurrencies, error in

}

Refreshing the Virtual Currencies Cache

The virtualCurrencies() functions use caching behind the scenes. If you know a virtual currency's balance has changed (e.g., due to a backend update) you can refresh the cache like so:

Purchases.shared.invalidateVirtualCurrenciesCache()

This ensures that the next virtualCurrencies() call will update the latest virtual currency values from the RevenueCat backend.

Working with Virtual Currencies

After fetching the VirtualCurrencies object from the above functions, you can work with individual VirtualCurrency objects like so:

// Iterate through all virtual currencies
for (virtualCurrencyCode, virtualCurrency) in virtualCurrencies.all {
    print("\(virtualCurrencyCode): \(virtualCurrency.balance)")
}

// Access a specific virtual currency
let virtualCurrency = virtualCurrencies["{YOUR_VIRTUAL_CURRENCY_CODE_HERE}"]

Renaming & New Fields

The VirtualCurrencyInfo type has been renamed to VirtualCurrency, with the following new fields added:

  • name: The name of the virtual currency as defined in the RevenueCat dashboard
  • code: The virtual currency's code as defined in the RevenueCat dashboard
  • serverDescription: The virtual currency's description as defined in the RevenueCat dashboard

Commits

  • [Virtual Currencies] Break VC Balances out of CustomerInfo (#5151) via Will Taylor (@fire-at-will)

4.43.7

25 Jun 18:35
Compare
Choose a tag to compare

🔄 Other Changes

  • Attempts to satisfy the precommit hook via JayShortway (@JayShortway)
  • [v4] Add Intro Eligibility Functions to CEC Mode (#5328) via JayShortway (@JayShortway)

5.29.0

18 Jun 10:49
Compare
Choose a tag to compare

RevenueCat SDK

Customer Center

✨ New Features

  • Use card_store_promotional for RC Promos in card & history (#5275) via Facundo Menzella (@facumenzella)
  • Refactor PurchaseHistory to use PurchaseInformation (#5260) via Facundo Menzella (@facumenzella)

🐞 Bugfixes

  • Add tests for PurchaseInformationView.Badge + rc promo (#5273) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • [Paywalls] Update ImageComponent max width after initial layout if it changes. (#5291) via Mark Villacampa (@MarkVillacampa)
  • Fix index and mgiration guides docs not being updated (#5298) via Mark Villacampa (@MarkVillacampa)
  • Add .yield to PaywallViewEventsFullscreenLightModeTests (#5294) via Facundo Menzella (@facumenzella)
  • Add missing @_spi to import in backend tests (#5297) via Antonio Pallares (@ajpallares)
  • Use minimal permissions for installation tests (#5274) via JayShortway (@JayShortway)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#5295) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#5289) via RevenueCat Git Bot (@RCGitBot)
  • Delete Examples folder from carthage checkout (#5287) via Facundo Menzella (@facumenzella)
  • Remove CustomerCenterConfigDataAPI from API Tests (#5286) via Facundo Menzella (@facumenzella)
  • Delete duplicate OfferingsList.swift from PaywallTester (#5249) via Facundo Menzella (@facumenzella)
  • Add abbrev to Gemfile (#5207) via Facundo Menzella (@facumenzella)
  • Test removing example apps before Carthage installation test (#5268) via Facundo Menzella (@facumenzella)
  • Add _spi(Internal) to Customer Center (#5270) via Facundo Menzella (@facumenzella)

5.29.0-vc-beta.3

18 Jun 18:58
Compare
Choose a tag to compare
5.29.0-vc-beta.3 Pre-release
Pre-release

RevenueCat SDK

  • Updated underlying SDK to use version 5.29.0. This includes a fix that allows the SDK to be compiled with Xcode 26.

5.28.1

11 Jun 18:38
Compare
Choose a tag to compare

RevenueCat SDK

🐞 Bugfixes

  • Enable markdown in paywalls in iOS 15 and watchOS 8 (#5267) via Antonio Pallares (@ajpallares)

Customer Center

🐞 Bugfixes

  • Trigger promotional offer callback from PromotionalOfferViewModel (#5263) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • FIx image load in paywall rendering validation (#5264) via Antonio Pallares (@ajpallares)
  • Include commit hash in commit message for paywall-rendering-validation (#5265) via Antonio Pallares (@ajpallares)
  • Bring back paywall rendering validation (no submodules) (#5252) via Antonio Pallares (@ajpallares)
  • Rename duplicate CachingProductsManagerTests to CachingProductsManagerIntegrationTests (#5244) via Facundo Menzella (@facumenzella)
  • Update CustomerInfo sample with is_sandbox to make sure it works (#5203) via Facundo Menzella (@facumenzella)
  • Add originalPurchaseDate & isSandbox to PurchaseInformation (#5259) via Facundo Menzella (@facumenzella)

5.28.0

10 Jun 00:01
Compare
Choose a tag to compare

RevenueCat SDK

Customer Center

✨ New Features

  • Show most recent expired if no active subscriptions (#5198) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • Use Mint 0.17.5 for run-test-ios-14 CI job (#5256) via Antonio Pallares (@ajpallares)
  • Fix Xcode 16 compilation error (#5254) via Antonio Pallares (@ajpallares)
  • Add Danger rule to avoid submodules (#5250) via Antonio Pallares (@ajpallares)