Skip to content

Releases: RevenueCat/purchases-ios

5.79.0

18 Jun 06:27

Choose a tag to compare

RevenueCat SDK

✨ New Features

  • State-driven Paywalls: Tab selected-state (#7019) via Monika Mateska (@MonikaMateska)
  • [EXTERNAL] feat: expose revocationDate and revocationReason on StoreTransaction via @mvanhorn (#7012) via Rick (@rickvdl)

RevenueCatUI SDK

✨ New Features

  • Add Slovenian locale support in paywalls (#7007) via Monika Mateska (@MonikaMateska)
  • Show DefaultPaywall warning view in UI preview mode (#6973) via Antonio Pallares (@ajpallares)

Paywallv2

🐞 Bugfixes

  • Use AVPlayerLayer for no-controls; fix KVO crash (#6987) via Alexander Repty (@alexrepty)

🔄 Other Changes

  • Update sdks-common-config orb to 3.21.2 (#7028) via Antonio Pallares (@ajpallares)
  • feat(RevenueCatUI): evaluate state conditions in the override resolver (#6993) via Monika Mateska (@MonikaMateska)
  • [AUTOMATIC] Update generated error codes (#7025) via RevenueCat Git Bot (@RCGitBot)
  • feat(RevenueCatUI): add presentation-session PaywallStateStore (#6992) via Monika Mateska (@MonikaMateska)
  • feat(paywalls): add dedicated state condition to component overrides (#6991) via Monika Mateska (@MonikaMateska)
  • feat(paywalls): add decode-only stateUpdates on interactive components (#6990) via Monika Mateska (@MonikaMateska)
  • feat(paywalls): decode top-level state declaration map (#6989) via Monika Mateska (@MonikaMateska)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#7023) via RevenueCat Git Bot (@RCGitBot)
  • Removes stale paywall template screenshots if necessary (#6984) via JayShortway (@JayShortway)
  • Update backend integration tests snapshots to include Slovenian localizations (#7018) via Antonio Pallares (@ajpallares)
  • feat: simulate promo offer eligibility in paywall previews (#6994) via Facundo Menzella (@facumenzella)
  • chore: Add 3-day Dependabot cooldown, excluding fastlane plugin (#7013) via Toni Rico (@tonidero)
  • WFL-303 | Add fallback URL for workflows (#7008) via Rosie Watson (@RosieWatson)
  • fix(paywalls): skip workflow fetch for offerings with no mapped workflow (#7002) via Facundo Menzella (@facumenzella)
  • Fix RevenueCatUI build on older Xcode: use legacy AVPlayerItemDidPlayToEndTime (#7003) via Alexander Repty (@alexrepty)
  • Remove legacy BackendIntegrationTests targets from RevenueCat.xcodeproj (#7006) via Facundo Menzella (@facumenzella)
  • Adopt scene lifecycle in UnitTestsHostApp for iOS 27 support (#6980) via Will Taylor (@fire-at-will)
  • Update baseline swiftinterface files for main (#7004) via RevenueCat Git Bot (@RCGitBot)
  • [AUTOMATIC] Update generated error codes (#7001) via RevenueCat Git Bot (@RCGitBot)
  • Fix tvOS/visionOS build: import AVFoundation in VideoPlayerViewUIView (#7000) via Alexander Repty (@alexrepty)
  • Danger: block manual edits to generated error codes (#6996) via Álvaro Brey (@AlvaroBrey)
  • Chore(deps): Bump fastlane-plugin-revenuecat_internal from d911a06 to 70bf5c7 (#6999) via dependabot[bot] (@dependabot[bot])
  • Add macCatalyst availability check (#6997) via Alexander Repty (@alexrepty)
  • Add mise setup-worktree task for one-command worktree setup (#6983) via Facundo Menzella (@facumenzella)
  • Use a snapshot-env-free macOS executor for update-error-codes (#6995) via Álvaro Brey (@AlvaroBrey)
  • Use Tuist workspace for BackendIntegrationTests in CI (#6774) via Facundo Menzella (@facumenzella)
  • Add update-error-codes workflow (#6981) via Álvaro Brey (@AlvaroBrey)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#6986) via RevenueCat Git Bot (@RCGitBot)
  • test(workflows): verify purchase/restore callbacks fire from any workflow step (#6855) via Facundo Menzella (@facumenzella)
  • fix(workflows): compute intro eligibility for inherited packages on packageless workflow screens (#6978) via Facundo Menzella (@facumenzella)
  • Makes run_plugin_action_in_current_directory resilient to missing subdirectories (#6976) via JayShortway (@JayShortway)
  • Adopt generated ErrorCode (#6970) via Álvaro Brey (@AlvaroBrey)
  • Chore(deps): Bump fastlane from 2.236.0 to 2.236.1 (#6975) via dependabot[bot] (@dependabot[bot])
  • Add internal RulesEngine evaluate API surface (#6966) via Antonio Pallares (@ajpallares)
  • Replace RulesEngine.logger global with task-local override + module default (#6963) via Antonio Pallares (@ajpallares)
  • feat(workflows): serve stale workflow detail while revalidating (#6961) via Facundo Menzella (@facumenzella)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#6964) via RevenueCat Git Bot (@RCGitBot)
  • Clean up changelogs from workflows PRs (#6960) via Facundo Menzella (@facumenzella)
  • feat(workflows): wire workflow step lifecycle events in PaywallViewModel (#6868) via Facundo Menzella (@facumenzella)
  • Fix flaky SK1 trial eligibility network request test (#6956) via Rick (@rickvdl)
  • Use the log operator to strengthen rules-engine fixtures (#6957) via Antonio Pallares (@ajpallares)
  • Add JSON Logic log operator (#6945) via Antonio Pallares (@ajpallares)
  • Add JSON Logic iteration operators (none, map, filter, reduce) (#6834) via Antonio Pallares (@ajpallares)
  • Chore(deps): Bump fastlane from 2.235.0 to 2.236.0 (#6959) via dependabot[bot] (@dependabot[bot])
  • fix(workflows): Don't leak the previous user's workflows after a login or logout (#6944) via Facundo Menzella (@facumenzella)

5.78.0

08 Jun 23:13

Choose a tag to compare

RevenueCat SDK

🐞 Bugfixes

  • Xcode 27 Beta Compilation Fix (#6949) via Will Taylor (@fire-at-will)
  • Fix badge stack shadow not being rendered (#6921) via Monika Mateska (@MonikaMateska)
  • Don't log App Store / StoreKit messages when using a Test Store API key (#6906) via Rick (@rickvdl)

RevenueCatUI SDK

Paywallv2

✨ New Features

  • [PW-128] Redact text in V2 paywalls while eligibility checks are pending (#6775) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • fix: skip RootView layout snapshot tests on iOS 15 (#6953) via Antonio Pallares (@ajpallares)
  • other(workflows): Run workflow detail prefetches on a dedicated concurrent queue (#6916) via Facundo Menzella (@facumenzella)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#6942) via RevenueCat Git Bot (@RCGitBot)
  • Skip Swift Testing predicate tests on Xcode 14/15 (#6937) via Antonio Pallares (@ajpallares)
  • Represent ±Infinity in test fixtures via test-only variables (#6936) via Antonio Pallares (@ajpallares)
  • Add JSON Logic min and max operators (#6825) via Antonio Pallares (@ajpallares)
  • Add JSON Logic iteration operators (some, all) (#6817) via Antonio Pallares (@ajpallares)
  • Skip release-or-main when manual snapshot workflows run (#6935) via Antonio Pallares (@ajpallares)
  • Migrate base RulesEngineInternal operator unit tests to JSON predicate fixtures (#6885) via Antonio Pallares (@ajpallares)
  • docs: add PR sizing and description guidelines to AGENTS.md (#6915) via Antonio Pallares (@ajpallares)
  • Update some CI jobs to Xcode 26.5 (#6555) via Antonio Pallares (@ajpallares)
  • fix(tuist): add missing test target deps (#6894) via Peter Porfy (@peterporfy)
  • Fix flaky tests caused by data races in MockDeviceCache (#6888) via Rick (@rickvdl)
  • fix(workflows): Don't serve stale workflows when the backend rejects the request (#6946) via Facundo Menzella (@facumenzella)
  • feat(workflows): persist prefetched workflow detail on disk (#6917) via Facundo Menzella (@facumenzella)
  • feat(workflows): bridge workflow exit offer into PaywallViewController (#6911) via Facundo Menzella (@facumenzella)
  • feat(workflows): synchronously seed workflow paywall from warm cache (#6905) via Facundo Menzella (@facumenzella)

5.77.0

04 Jun 16:17

Choose a tag to compare

RevenueCat SDK

✨ New Features

🐞 Bugfixes

  • Fix: erroneous initializations of the PurchaseHandler from a button (#6827) via Jacob Rakidzich (@JZDesign)
  • [Billing Plans]: Use total commitment price for StoreProduct.price when representing a billing plan (#6910) via Will Taylor (@fire-at-will)

🔄 Other Changes

  • feat(workflows): fetch workflows list with offerings and clear it on identity changes (#6883) via Facundo Menzella (@facumenzella)

RevenueCatUI SDK

🐞 Bugfixes

  • Fix decoded image cache concurrency deadlock (#6907) via Cesar de la Vega (@vegaro)
  • fix(workflows): preserve workflow page state across navigation (#6889) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • feat(workflows): Enable workflow resolution for PaywallView (#6887) via Facundo Menzella (@facumenzella)

5.76.0

03 Jun 20:46

Choose a tag to compare

RevenueCat SDK

✨ New Features

  • feat(test-store): Add support for free trials in Test Store (#6884) via Toni Rico (@tonidero)
  • Add presented offering context to custom paywall events (#6707) via Rick (@rickvdl)

🐞 Bugfixes

  • Fix Paywalls V2 root z-layer stacks not scrolling in bounded containers (#6873) via Monika Mateska (@MonikaMateska)
  • fix(tests): add missing iOS 14/15 snapshots for BackendGetWorkflowsListTests (#6861) via Rick (@rickvdl)

Storekit 2

✨ New Features

  • [Billing Plans] Support fetching & purchasing products with billing plans (#6783) via Will Taylor (@fire-at-will)

🔄 Other Changes

  • feat(workflows): add WorkflowEvent model and wire format serialization (#6858) via Facundo Menzella (@facumenzella)

RevenueCatUI SDK

🔄 Other Changes

  • Bump Max Log Count in Tests (#6901) via Will Taylor (@fire-at-will)
  • feat(workflows): add WorkflowManager with list fetch, prefetch and offeringId resolution (#6882) via Facundo Menzella (@facumenzella)
  • feat(workflows): add WorkflowsCache and disk persistence for workflows list (#6881) via Facundo Menzella (@facumenzella)
  • feat(remote-config): add network scaffolding for GET /v2/config endpoint (#6854) via Rick (@rickvdl)
  • Add JSON Logic string + array operators (#6793) via Antonio Pallares (@ajpallares)
  • Fix flaky metadata-sync & consent-status unit tests (#6876) via Rick (@rickvdl)
  • Chore(deps): Bump fastlane-plugin-revenuecat_internal from af7bb5c to ce6a7ef (#6879) via dependabot[bot] (@dependabot[bot])
  • refactor: extract Offering.presentedOfferingContext helper and apply … (#6865) via Rick (@rickvdl)
  • feat(ads): add rewarded-ad reward event types and AdTracker methods (#6843) via Pol Miro (@polmiro)
  • Bump jwt from 2.10.1 to 3.2.0 in /Tests/InstallationTests/CocoapodsInstallation (#6848) via dependabot[bot] (@dependabot[bot])
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#6871) via RevenueCat Git Bot (@RCGitBot)
  • Add JSON Logic comparison operators (<, <=, >, >=) (#6792) via Antonio Pallares (@ajpallares)
  • Allow overriding PaywallsTester bundle ID via Tuist env var (#6869) via Facundo Menzella (@facumenzella)
  • Add JSON Logic arithmetic operators (+, -, *, /, %) (#6791) via Antonio Pallares (@ajpallares)
  • Lint: Enforce no-new-public-enums policy via SwiftLint custom rule (#6778) via Antonio Pallares (@ajpallares)
  • RulesEngineInternal: add JSON Logic predicate evaluator (#6789) via Antonio Pallares (@ajpallares)
  • Forbid plain import RulesEngineInternal via SwiftLint custom rule (#6788) via Antonio Pallares (@ajpallares)
  • Add presentWorkflow for workflow (#6847) via Cesar de la Vega (@vegaro)
  • Add RulesEngine skeleton module (#6787) via Antonio Pallares (@ajpallares)
  • fix workflow header transitions (#6880) via Facundo Menzella (@facumenzella)
  • fix workflow page transitions (#6877) via Facundo Menzella (@facumenzella)
  • feat(networking): add getWorkflows list endpoint (#6853) via Facundo Menzella (@facumenzella)
  • Don't send interaction event for workflow trigger button actions (#6771) via Cesar de la Vega (@vegaro)

5.75.0

27 May 18:23

Choose a tag to compare

RevenueCat SDK

🐞 Bugfixes

  • Warm intro eligibility cache for all offerings (#6839) via Antonio Pallares (@ajpallares)

🔄 Other Changes

  • ci(admob): run revenuecat-admob-tests on every PR push (#6850) via Pol Miro (@polmiro)
  • fix(ads/admob): update test fakes for non-optional CapableAd.responseInfo (#6849) via Pol Miro (@polmiro)
  • feat(ads/admob): add impression_id to SSV customRewardText payload (#6841) via Pol Miro (@polmiro)
  • refactor(ads/admob): propagate FailureReason through poller and dispatcher (#6842) via Pol Miro (@polmiro)
  • Bump fastlane from 2.234.0 to 2.235.0 (#6844) via dependabot[bot] (@dependabot[bot])
  • Propagate default package across workflow steps (#6790) via Facundo Menzella (@facumenzella)
  • Fix workflow paywall safe area clipping (#6816) via Facundo Menzella (@facumenzella)

5.74.0

22 May 23:50

Choose a tag to compare

RevenueCat SDK

✨ New Features

  • Dedupe Purchases.configure(with:) calls with equal Configuration (#6811) via Antonio Pallares (@ajpallares)

RevenueCatUI SDK

🐞 Bugfixes

  • Fix repeated paywall purchase cancellations (#6826) via Jacob Rakidzich (@JZDesign)

Paywallv2

🐞 Bugfixes

  • Add conditional visibility to ButtonComponent (#6821) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • Post GitHub PR comment on CI test failure (#6818) via Facundo Menzella (@facumenzella)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#6823) via RevenueCat Git Bot (@RCGitBot)
  • Expand DangerousSettings API tester coverage (#6810) via Antonio Pallares (@ajpallares)

5.73.1

21 May 07:50

Choose a tag to compare

RevenueCatUI SDK

Paywallv2

🐞 Bugfixes

  • Fix workflow exit offer presentation across sheet boundaries (#6804) via Facundo Menzella (@facumenzella)

Customer Center

🐞 Bugfixes

  • Filter changePlans path for expired subscriptions in CustomerCenter (#6814) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • Removes swiftPMImport from cinterop package name (#6803) via JayShortway (@JayShortway)
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#6819) via RevenueCat Git Bot (@RCGitBot)
  • Rename reward verification completion callback (#6800) via Pol Miro (@polmiro)
  • Open workflow exit offer as a second workflow (#6756) via Facundo Menzella (@facumenzella)

5.73.0

13 May 18:47

Choose a tag to compare

RevenueCat SDK

✨ New Features

RevenueCatUI SDK

🐞 Bugfixes

  • Fix: Auto Scaling Font Setting Serialization (#6769) via Jacob Rakidzich (@JZDesign)

Paywall Components

✨ New Features

🔄 Other Changes

  • Make Offering.PaywallComponents and paywallComponents public (#6742) via Antonio Pallares (@ajpallares)
  • Fix Custom Entitlement Computation SPM installation test (#6770) via Antonio Pallares (@ajpallares)
  • [Billing Plans]: Introduce Xcode 26.5 build job + handle StoreKitError.paymentMethodBindingConfigurationRequired (#6767) via Will Taylor (@fire-at-will)
  • Auto-invalidate VC cache for verified rewards (#6765) via Pol Miro (@polmiro)
  • Require rewardVerificationResult callback (#6762) via Pol Miro (@polmiro)
  • Bump fastlane from 2.233.1 to 2.234.0 (#6764) via dependabot[bot] (@dependabot[bot])
  • Fix example app disable controls during reward verification (#6761) via Pol Miro (@polmiro)
  • Add reward verification support to AdMobIntegrationSample example app (#6746) via Pol Miro (@polmiro)
  • Remove redundant isVerified from AdMob reward verification result (#6760) via Pol Miro (@polmiro)
  • Remove unused test plans (#6759) via Facundo Menzella (@facumenzella)
  • Bump nokogiri from 1.19.1 to 1.19.3 in /Tests/InstallationTests/CocoapodsInstallation (#6757) via dependabot[bot] (@dependabot[bot])
  • Replace RevenueCatUITestsDev with PaywallScreenshotTests Tuist project (#6744) via Facundo Menzella (@facumenzella)
  • Resolve exit offer offering ID from workflow singleStepFallbackId (#6755) via Facundo Menzella (@facumenzella)
  • Parse exit_offers field on WorkflowScreen (#6754) via Facundo Menzella (@facumenzella)

5.72.0

07 May 20:05

Choose a tag to compare

RevenueCat SDK

✨ New Features

  • Add support for intro offer eligibility override in non-cec mode (#6748) via Mark Villacampa (@MarkVillacampa)

RevenueCatUI SDK

Paywallv2

✨ New Features

  • FEAT: Allow disabling of automatic font scaling (#6727) via Jacob Rakidzich (@JZDesign)

🔄 Other Changes

  • [Billing Plans]: Parse platform_product_plan_identifier in offerings response (#6738) via Will Taylor (@fire-at-will)
  • fix for CI - add missing JSON field (#6747) via Jacob Rakidzich (@JZDesign)
  • chore: add logging to reward verification (#6745) via Peter Porfy (@peterporfy)
  • Add internal reward-verification adapter pipeline (#6663) via Pol Miro (@polmiro)
  • Resolve price/period variables on packageless workflow screens (#6737) via Facundo Menzella (@facumenzella)

5.71.0

07 May 06:39

Choose a tag to compare

RevenueCatUI SDK

Paywallsv2

🐞 Bugfixes

  • Fix fullscreen paywall overflow for fill-mode videos (#6726) via Monika Mateska (@MonikaMateska)
  • Fix: Enforce vertical bounds in RootView (#6708) via Jacob Rakidzich (@JZDesign)
  • Fix layout direction override (PWENG-39) (#6723) via Alexander Repty (@alexrepty)
  • Fix workflow page transition layering (#6717) via Facundo Menzella (@facumenzella)

🔄 Other Changes

  • Bump fastlane-plugin-revenuecat_internal from 21e02ec to af7bb5c (#6734) via dependabot[bot] (@dependabot[bot])
  • Parse single_step_fallback_id in PublishedWorkflow (#6733) via Facundo Menzella (@facumenzella)
  • Introduce Tracking namespace and extract delegate stores (#6681) via Pol Miro (@polmiro)
  • Add BYPASS_SIMULATED_STORE_RELEASE_CHECK compilation flag (#6710) via Antonio Pallares (@ajpallares)
  • Bump fastlane-plugin-revenuecat_internal from 2d11430 to 21e02ec (#6731) via dependabot[bot] (@dependabot[bot])
  • Only run snapshot-bump workflow when .version changed (#6724) via Antonio Pallares (@ajpallares)
  • Bump shared rerun-danger workflow to pick up missing-workflow guard (#6728) via Rick (@rickvdl)
  • Bump fastlane-plugin-revenuecat_internal from d24ab26 to 2d11430 (#6729) via dependabot[bot] (@dependabot[bot])
  • [AUTOMATIC][Paywalls V2] Updates commit hash of paywall-preview-resources (#6730) via RevenueCat Git Bot (@RCGitBot)
  • Move deploy-purchase-tester after make-release (#6725) via Antonio Pallares (@ajpallares)
  • Bump fastlane from 2.233.0 to 2.233.1 (#6718) via dependabot[bot] (@dependabot[bot])
  • Fail PRs when Swift files are missing from RevenueCat.xcodeproj (#6716) via Antonio Pallares (@ajpallares)
  • Update sdks-common-config orb to v3.20.0 (#6709) via Rick (@rickvdl)
  • Prewarm workflow assets after offerings refresh (#6732) via Facundo Menzella (@facumenzella)