PackageTrack
Sign in Get early access

adapty_flutter

Adapty SDK is an open-source framework that makes implementing in-app subscriptions in Flutter applications fast and easy. It’s 100% open-source and lightweight.

4.0.4 adaptyteam/AdaptySDK-Flutter

What this package is like to depend on

Last release 9 days ago

14 Aug 2026

Ships fairly regularly

a new release about every 4 weeks

Nearly every release is documented

notes for 85 of 87 stable releases

3 versions withdrawn

withdrawn after publishing

6 years old

91 releases · first in 2021

19 releases in the last 12 months

see the full history below

Release timeline

91 releases · Feb 2021 to Aug 2026
2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 91
  1. 4.0.4 14 Aug 2026
    Release notes

    ⚠️ Changed

    • [Android] restorePurchases() no longer throws when there is nothing to restore. It now completes successfully with the current AdaptyProfile — check the access level in the returned profile instead of catching an error. If your code treats a failed restore as "nothing to restore", that branch will no longer be reached on Android.

    🩹 Fixed

    • Text elements in paywalls and flows lost their color and background when the builder sent them under the text_color and text_background keys. The old color and background keys are still read, so views built before the change keep rendering as they did. Affected both platforms.

    ⚠️ Deprecated

    • AdaptyErrorCode.noPurchasesToRestore — no longer returned on Android. Check the access level status in the profile returned by restorePurchases().

    Native dependencies in this release: iOS 4.0.3, Android 4.0.2.

    ❗️ Don't forget to update your local fallback file if needed.

    Full Changelog: 4.0.3...4.0.4

    Open source →
    Release notes
    • [Android] restorePurchases() no longer fails with noPurchasesToRestore when there is nothing to restore. It now completes successfully with the current AdaptyProfile — check the access level status in the returned profile instead of catching an error. AdaptyErrorCode.noPurchasesToRestore is deprecated on Android.
    • [Android] Restore now uses currently owned purchases only. The native SDK moved to Google Play Billing Library 8, which removed the purchase history API. Purchases made through Adapty are unaffected, but subscriptions that expired before Adapty was integrated can no longer be imported from the device.
    • Fixed text elements in paywalls and flows losing their color and background when the builder sends them under the text_color and text_background keys. The old color and background keys are still read, so views built before the change keep rendering as they did. Fixed on both platforms.
    • [iOS] Native iOS SDK dependency pinned to 4.0.3.
    • [Android] Native Android SDK dependency bumped to 4.0.2.
    Open source →
  2. 4.0.3 30 Jul 2026
    Release notes

    🚀 New

    • AdaptyUI.createFlowView and AdaptyUIFlowPlatformView now accept a locale — the localization the flow view is rendered with. Since 4.0.0 a flow is localized when its view is built, and there was no way to choose that localization from Dart.

      Without a locale the view is rendered in en, falling back to the flow's default localization when the flow has no en. Asking for a localization the flow does not have falls back to the flow default as well, without an error. Strings missing from the chosen localization are filled in from the default one.

    • AdaptyUIFlowView now reports the locale the view was actually built with, so you can tell which localization was applied.

    🩹 Fixed

    • Custom gradient assets lost all of their colors when the LinearGradient had no explicit stops — the idiomatic LinearGradient(colors: [a, b]) reached the native side with no colors at all. Affected both platforms.

    ⚠️ Deprecated

    • The locale argument of getFlow and getFlowForDefaultAudience has had no effect on flows since 4.0.0. It is now deprecated and logs a warning instead of being dropped silently — pass the locale to createFlowView or AdaptyUIFlowPlatformView instead.

    Native dependencies in this release: iOS 4.0.2, Android 4.0.1.

    Full Changelog: 4.0.2...4.0.3

    Open source →
    Release notes
    • AdaptyUI.createFlowView and AdaptyUIFlowPlatformView now accept a locale — the localization the flow view is rendered with. Since 4.0.0 a flow is localized when its view is built, and there was no way to choose that localization from Dart. Requires the native iOS 4.0.2 and Android 4.0.1 releases.

      Without a locale the view is rendered in en, falling back to the flow's default localization when the flow has no en. Asking for a localization the flow does not have falls back to the flow default as well, without an error. Strings missing from the chosen localization are filled in from the default one.

    • AdaptyUIFlowView now reports the locale the view was actually built with, so you can tell which localization was applied. It is null when paired with an older native SDK.

    • The locale argument of getFlow and getFlowForDefaultAudience has had no effect on flows since 4.0.0. It is now marked deprecated and logs a warning instead of being silently dropped; pass the locale to createFlowView or AdaptyUIFlowPlatformView instead.

    • Fixed custom gradient assets losing all of their colors when the LinearGradient had no explicit stops. Affected both platforms.

    Open source →
  3. 4.0.2 17 Jul 2026
    Release notes

    🩹 Fixed

    • [iOS] Crash (freed pointer was not the last allocation) when a placement was served from cache, on Xcode 26.3 / Swift 6.2.4 release builds.
    • [iOS] Kids Mode: adapty_flutter_kids no longer imports AppTrackingTransparency — the native ATT surface is now fully compiled out under the kids trait.

    Native iOS SDK dependency is pinned to 4.0.1 in this release.

    Full Changelog: 4.0.1...4.0.2


    4.0.0

    ⚠️ Major release with breaking API changes. The "paywall" concept is generalized into flow; most Paywall/paywall symbols are renamed to Flow/flow, and previously deprecated aliases are removed.

    🚀 Flow — the successor to Paywalls

    4.0.0 introduces Flow, which replaces the Paywall as the core unit of presentation and analytics. A flow can contain multiple screens, with its rendering, navigation, and analytics driven by the new flow runtime.

    👉 Read more about Adapty Flow Builder.
    👉 See the migration guide to move from 3.x.

    📦 Requirements & installation

    • Minimum Flutter 3.32.0 (Dart 3.8.0).
    • [iOS] Minimum deployment target is now iOS 15; requires Xcode 26+ (the native iOS SDK uses Swift tools 6.2).
    • [iOS] CocoaPods support dropped — the iOS native SDK is now distributed via Swift Package Manager only. Apps on Flutter 3.32–3.43 must enable SPM once with flutter config --enable-swift-package-manager; Flutter 3.44+ enables it by default.

    💥 Breaking changes

    • Paywall → Flow rename. AdaptyPaywall is split into AdaptyFlow (+ AdaptyFlowPaywall); AdaptyUIPaywallViewAdaptyUIFlowView; Adapty().getPaywall(...)getFlow(...) and getPaywallForDefaultAudience(...)getFlowForDefaultAudience(...); AdaptyUI().createPaywallView(...)createFlowView(...); logShowPaywall(...)logShowFlow(...).
    • Events observer renamed. AdaptyUIPaywallsEventsObserverAdaptyUIFlowsEventsObserver (setPaywallsEventsObserversetFlowsEventsObserver); all paywallViewDid* callbacks → flowViewDid*. The separate rendering-failure callback is folded into flowViewDidReceiveError.
    • AdaptyPaywallViewConfiguration is no longer exposed; the view configuration is now opaque.
    • Removed APIs deprecated back in 3.x: Adapty.setFallbackPaywalls() (use setFallback()), AdaptyConfigurationBuilder.withIdfaCollectionDisabled() (use withAppleIdfaCollectionDisabled()), AdaptyFlow.placementId / AdaptyFlow.revision (use placement.id / placement.revision), AdaptyPurchaseResultSuccess.jwsTransaction (use appleJwsTransaction), and AdaptyUIFlowView.paywallVariationId (use variationId).
    • Dismissing a flow or onboarding view now releases it from memory by default; a dismissed view can no longer be re-presented — create a new one instead.
    • [Android] The system back button no longer dismisses a flow by default. Handle AndroidSystemBackAction in your events observer if you want it to close the flow.

    🆕 New

    • AdaptyUISystemRequestsHandler — handle flow system requests (OS permission prompts and App Store review requests) triggered by flow actions. Register via AdaptyUI().setSystemRequestsHandler(...).
    • AdaptyUIObserverModeResolver — drive purchases and restores initiated from flows while running in Observer Mode. Register via AdaptyUI().setObserverModeResolver(...).
    • flowViewDidReceiveAnalyticEvent — receive customer-facing analytic events emitted by a flow.
    • Adapty.openWebPaywall and Adapty.createWebPaywallUrl now accept an AdaptyFlowPaywall in addition to an AdaptyPaywallProduct.
    • setFlowsEventsObserver / setOnboardingsEventsObserver now accept null to detach a previously set observer, so the SDK no longer retains it (useful for cleanup).

    ⚠️ Deprecated

    • The Onboarding feature is deprecated; migrate to Flows. AdaptyOnboarding, AdaptyUIOnboardingView, AdaptyUIOnboardingPlatformView, AdaptyUIOnboardingsEventsObserver, the onboarding state / input / analytics models, and the related Adapty / AdaptyUI methods (getOnboarding, getOnboardingForDefaultAudience, create/present/dismissOnboardingView, register/unregister/setOnboardingsEventsObserver) are now annotated @Deprecated.

    Full Changelog: 3.17.1...4.0.0

    Open source →
    Release notes
    • [iOS] Fixed a crash (freed pointer was not the last allocation) when a placement was served from cache, on Xcode 26.3 / Swift 6.2.4 release builds.
    • [iOS] Kids Mode: adapty_flutter_kids no longer imports AppTrackingTransparency — the native ATT surface is now fully compiled out under the kids trait.
    • [iOS] Native iOS SDK dependency pinned to 4.0.1.
    Open source →
  4. 4.0.1 15 Jul 2026
    Release notes

    🩹 Fixed

    • [iOS] Native iOS SDK pinned to an exact version 4.0.0.

    Full Changelog: 4.0.0...4.0.1


    4.0.0

    ⚠️ Major release with breaking API changes. The "paywall" concept is generalized into flow; most Paywall/paywall symbols are renamed to Flow/flow, and previously deprecated aliases are removed.

    🚀 Flow — the successor to Paywalls

    4.0.0 introduces Flow, which replaces the Paywall as the core unit of presentation and analytics. A flow can contain multiple screens, with its rendering, navigation, and analytics driven by the new flow runtime.

    👉 Read more about Adapty Flow Builder.
    👉 See the migration guide to move from 3.x.

    📦 Requirements & installation

    • Minimum Flutter 3.32.0 (Dart 3.8.0).
    • [iOS] Minimum deployment target is now iOS 15; requires Xcode 26+ (the native iOS SDK uses Swift tools 6.2).
    • [iOS] CocoaPods support dropped — the iOS native SDK is now distributed via Swift Package Manager only. Apps on Flutter 3.32–3.43 must enable SPM once with flutter config --enable-swift-package-manager; Flutter 3.44+ enables it by default.

    💥 Breaking changes

    • Paywall → Flow rename. AdaptyPaywall is split into AdaptyFlow (+ AdaptyFlowPaywall); AdaptyUIPaywallViewAdaptyUIFlowView; Adapty().getPaywall(...)getFlow(...) and getPaywallForDefaultAudience(...)getFlowForDefaultAudience(...); AdaptyUI().createPaywallView(...)createFlowView(...); logShowPaywall(...)logShowFlow(...).
    • Events observer renamed. AdaptyUIPaywallsEventsObserverAdaptyUIFlowsEventsObserver (setPaywallsEventsObserversetFlowsEventsObserver); all paywallViewDid* callbacks → flowViewDid*. The separate rendering-failure callback is folded into flowViewDidReceiveError.
    • AdaptyPaywallViewConfiguration is no longer exposed; the view configuration is now opaque.
    • Removed APIs deprecated back in 3.x: Adapty.setFallbackPaywalls() (use setFallback()), AdaptyConfigurationBuilder.withIdfaCollectionDisabled() (use withAppleIdfaCollectionDisabled()), AdaptyFlow.placementId / AdaptyFlow.revision (use placement.id / placement.revision), AdaptyPurchaseResultSuccess.jwsTransaction (use appleJwsTransaction), and AdaptyUIFlowView.paywallVariationId (use variationId).
    • Dismissing a flow or onboarding view now releases it from memory by default; a dismissed view can no longer be re-presented — create a new one instead.
    • [Android] The system back button no longer dismisses a flow by default. Handle AndroidSystemBackAction in your events observer if you want it to close the flow.

    🆕 New

    • AdaptyUISystemRequestsHandler — handle flow system requests (OS permission prompts and App Store review requests) triggered by flow actions. Register via AdaptyUI().setSystemRequestsHandler(...).
    • AdaptyUIObserverModeResolver — drive purchases and restores initiated from flows while running in Observer Mode. Register via AdaptyUI().setObserverModeResolver(...).
    • flowViewDidReceiveAnalyticEvent — receive customer-facing analytic events emitted by a flow.
    • Adapty.openWebPaywall and Adapty.createWebPaywallUrl now accept an AdaptyFlowPaywall in addition to an AdaptyPaywallProduct.
    • setFlowsEventsObserver / setOnboardingsEventsObserver now accept null to detach a previously set observer, so the SDK no longer retains it (useful for cleanup).

    ⚠️ Deprecated

    • The Onboarding feature is deprecated; migrate to Flows. AdaptyOnboarding, AdaptyUIOnboardingView, AdaptyUIOnboardingPlatformView, AdaptyUIOnboardingsEventsObserver, the onboarding state / input / analytics models, and the related Adapty / AdaptyUI methods (getOnboarding, getOnboardingForDefaultAudience, create/present/dismissOnboardingView, register/unregister/setOnboardingsEventsObserver) are now annotated @Deprecated.

    Full Changelog: 3.17.1...4.0.0

    Open source →
    Release notes
    • [iOS] Pin the native iOS SDK dependency to exactly 4.0.0 (was from: "4.0.0"). The Flutter bridge targets this exact native version, so the plugin no longer resolves to newer 4.x native releases it wasn't built against.
    Open source →
  5. 4.0.0 14 Jul 2026 withdrawn
    Release notes

    ⚠️ Major release with breaking API changes. The "paywall" concept is generalized into flow; most Paywall/paywall symbols are renamed to Flow/flow, and previously deprecated aliases are removed.

    🚀 Flow — the successor to Paywalls

    4.0.0 introduces Flow, which replaces the Paywall as the core unit of presentation and analytics. A flow can contain multiple screens, with its rendering, navigation, and analytics driven by the new flow runtime.

    👉 Read more about Adapty Flow Builder.
    👉 See the migration guide to move from 3.x.

    📦 Requirements & installation

    • Minimum Flutter 3.32.0 (Dart 3.8.0).
    • [iOS] Minimum deployment target is now iOS 15; requires Xcode 26+ (the native iOS SDK uses Swift tools 6.2).
    • [iOS] CocoaPods support dropped — the iOS native SDK is now distributed via Swift Package Manager only. Apps on Flutter 3.32–3.43 must enable SPM once with flutter config --enable-swift-package-manager; Flutter 3.44+ enables it by default.

    💥 Breaking changes

    • Paywall → Flow rename. AdaptyPaywall is split into AdaptyFlow (+ AdaptyFlowPaywall); AdaptyUIPaywallViewAdaptyUIFlowView; Adapty().getPaywall(...)getFlow(...) and getPaywallForDefaultAudience(...)getFlowForDefaultAudience(...); AdaptyUI().createPaywallView(...)createFlowView(...); logShowPaywall(...)logShowFlow(...).
    • Events observer renamed. AdaptyUIPaywallsEventsObserverAdaptyUIFlowsEventsObserver (setPaywallsEventsObserversetFlowsEventsObserver); all paywallViewDid* callbacks → flowViewDid*. The separate rendering-failure callback is folded into flowViewDidReceiveError.
    • AdaptyPaywallViewConfiguration is no longer exposed; the view configuration is now opaque.
    • Removed APIs deprecated back in 3.x: Adapty.setFallbackPaywalls() (use setFallback()), AdaptyConfigurationBuilder.withIdfaCollectionDisabled() (use withAppleIdfaCollectionDisabled()), AdaptyFlow.placementId / AdaptyFlow.revision (use placement.id / placement.revision), AdaptyPurchaseResultSuccess.jwsTransaction (use appleJwsTransaction), and AdaptyUIFlowView.paywallVariationId (use variationId).
    • Dismissing a flow or onboarding view now releases it from memory by default; a dismissed view can no longer be re-presented — create a new one instead.
    • [Android] The system back button no longer dismisses a flow by default. Handle AndroidSystemBackAction in your events observer if you want it to close the flow.

    🆕 New

    • AdaptyUISystemRequestsHandler — handle flow system requests (OS permission prompts and App Store review requests) triggered by flow actions. Register via AdaptyUI().setSystemRequestsHandler(...).
    • AdaptyUIObserverModeResolver — drive purchases and restores initiated from flows while running in Observer Mode. Register via AdaptyUI().setObserverModeResolver(...).
    • flowViewDidReceiveAnalyticEvent — receive customer-facing analytic events emitted by a flow.
    • Adapty.openWebPaywall and Adapty.createWebPaywallUrl now accept an AdaptyFlowPaywall in addition to an AdaptyPaywallProduct.
    • setFlowsEventsObserver / setOnboardingsEventsObserver now accept null to detach a previously set observer, so the SDK no longer retains it (useful for cleanup).

    ⚠️ Deprecated

    • The Onboarding feature is deprecated; migrate to Flows. AdaptyOnboarding, AdaptyUIOnboardingView, AdaptyUIOnboardingPlatformView, AdaptyUIOnboardingsEventsObserver, the onboarding state / input / analytics models, and the related Adapty / AdaptyUI methods (getOnboarding, getOnboardingForDefaultAudience, create/present/dismissOnboardingView, register/unregister/setOnboardingsEventsObserver) are now annotated @Deprecated.

    Full Changelog: 3.17.1...4.0.0

    Open source →
    Release notes

    ⚠️ Major release with breaking API changes. The "paywall" concept is generalized into "flow"; most Paywall/paywall UI symbols are renamed to Flow/flow, and previously deprecated aliases are removed.

    ⚠️ Breaking Changes

    • Paywall → Flow rename. AdaptyPaywall is split into AdaptyFlow (+ AdaptyFlowPaywall); AdaptyUIPaywallViewAdaptyUIFlowView; Adapty().getPaywall(...)getFlow(...) and getPaywallForDefaultAudience(...)getFlowForDefaultAudience(...); AdaptyUI().createPaywallView(...)createFlowView(...); logShowPaywall(...)logShowFlow(...).
    • Events observer renamed. AdaptyUIPaywallsEventsObserverAdaptyUIFlowsEventsObserver (setPaywallsEventsObserversetFlowsEventsObserver); all paywallViewDid* callbacks → flowViewDid*. The separate rendering-failure callback is folded into flowViewDidReceiveError.
    • AdaptyPaywallViewConfiguration is no longer exposed; the view configuration is now opaque.
    • Removed APIs that were deprecated back in 3.x: Adapty.setFallbackPaywalls() (use setFallback()), AdaptyConfigurationBuilder.withIdfaCollectionDisabled() (use withAppleIdfaCollectionDisabled()), AdaptyFlow.placementId / AdaptyFlow.revision (use placement.id / placement.revision), AdaptyPurchaseResultSuccess.jwsTransaction (use appleJwsTransaction), and AdaptyUIFlowView.paywallVariationId (use variationId).
    • Dismissing a flow or onboarding view now releases it from memory by default; a dismissed view can no longer be re-presented — create a new one instead.
    • The Android system back button no longer dismisses a flow by default. Handle AndroidSystemBackAction in your events observer if you want it to close the flow.
    • [iOS] Minimum deployment target raised to iOS 15.
    • [iOS] Requires Xcode 26 or newer (the native iOS SDK uses Swift tools 6.2).
    • [iOS] CocoaPods support dropped; the iOS native SDK is distributed via Swift Package Manager only.
    • Minimum Flutter raised to 3.32.0 (Dart 3.8.0).
    • [iOS] Because the iOS SDK is SwiftPM-only, apps on Flutter 3.32–3.43 must enable Swift Package Manager once with flutter config --enable-swift-package-manager; Flutter 3.44+ enables it by default.

    New

    • AdaptyUISystemRequestsHandler — handle flow system requests (OS permission prompts and App Store review requests) triggered by flow actions. Register via AdaptyUI().setSystemRequestsHandler(...).
    • AdaptyUIObserverModeResolver — drive purchases and restores initiated from flows while running in Observer Mode. Register via AdaptyUI().setObserverModeResolver(...).
    • flowViewDidReceiveAnalyticEvent — receive customer-facing analytic events emitted by a flow.
    • Adapty.openWebPaywall and Adapty.createWebPaywallUrl now accept an AdaptyFlowPaywall in addition to an AdaptyPaywallProduct.
    • setFlowsEventsObserver / setOnboardingsEventsObserver now accept null to detach a previously set observer, so the SDK no longer retains it (useful for cleanup).

    Deprecated

    • The Onboarding Feature is deprecated; migrate to Flows. AdaptyOnboarding, AdaptyUIOnboardingView, AdaptyUIOnboardingPlatformView, AdaptyUIOnboardingsEventsObserver, the onboarding state / input / analytics models, and the related Adapty/AdaptyUI methods (getOnboarding, getOnboardingForDefaultAudience, create/present/dismissOnboardingView, register/unregister/setOnboardingsEventsObserver) are now annotated @Deprecated.
    Open source →
  6. 3.17.2 17 Jul 2026
    Release notes
    • [iOS] Updated native iOS SDK to 3.17.3, fixing a crash when a placement was served from cache on recent Xcode / Swift Release builds.
    Open source →
    Release notes
    • [iOS] Updated native iOS SDK to 3.17.3, fixing a crash when a placement was served from cache on recent Xcode / Swift Release builds.
    Open source →
  7. 3.17.1 02 Jul 2026
    Release notes
    • [Android] Updated native Android SDK to 3.17.2.
    • [Android] Fixed AGP 9 and Built-In Kotlin support.
    Open source →
    Release notes
    • [Android] Updated native Android SDK to 3.17.2.
    • [Android] Fixed AGP 9 and Built-In Kotlin support.
    Open source →
  8. 3.17.0 05 Jun 2026
    Release notes

    ⚠️ Swift Package Manager support is experimental. If anything doesn't work with the SwiftPM integration, please report it at https://github.com/adaptyteam/AdaptySDK-Flutter/issues. Kids Mode does not work with SwiftPM yet — use the CocoaPods integration if you need Kids Mode.

    New

    • [Android] Google Play Billing Library 8 is now the default. Since 3.15.0 the SDK has been compatible with Billing Library 8 (opt-in); it is now used by default.
    • OpenUrlAction now carries an openIn parameter (AdaptyWebPresentation) indicating where the URL should be opened — external browser or in-app browser.
    • AdaptyProfile now exposes appliedAttributionSources (List<AdaptyAttributionSource>), reporting which attribution sources have been applied to the profile (e.g. appleSearchAds).
    • [iOS] Added Swift Package Manager support (experimental). The plugin now ships a Package.swift alongside the CocoaPods podspec, so apps with SwiftPM enabled build it via SwiftPM while CocoaPods keeps working unchanged. #184

    ⚠️ Breaking Changes

    • OpenUrlAction constructor signature changed: it now requires a second positional argument openIn of type AdaptyWebPresentation.

    Native

    • [iOS] Updated native iOS SDK to 3.17.2.
    • [Android] Updated native Android SDK to 3.17.1.
    Open source →
    Release notes

    New

    • OpenUrlAction now carries an openIn parameter (AdaptyWebPresentation) indicating where the URL should be opened — external browser or in-app browser.
    • [iOS] Added Swift Package Manager support. The plugin now ships a Package.swift alongside the CocoaPods podspec, so apps with SwiftPM enabled build it via SwiftPM while CocoaPods keeps working unchanged.
    • AdaptyProfile now exposes appliedAttributionSources (List<AdaptyAttributionSource>), reporting which attribution sources have been applied to the profile (e.g. appleSearchAds).

    ⚠️ Breaking Changes

    • OpenUrlAction constructor signature changed: it now requires a second positional argument openIn of type AdaptyWebPresentation. The action instances are normally produced by the SDK from native events, so most integrations are unaffected; direct constructions need an explicit openIn.

    Native

    • [iOS] Updated native iOS SDK to 3.17.2.
    • [Android] Updated native Android SDK to 3.17.1.
    Open source →
  9. 3.15.5 25 Mar 2026
    Release notes
    • [iOS] Updated native iOS SDK to 3.15.7.
    Open source →
    Release notes
    • [iOS] Updated native iOS SDK to 3.15.7.
    Open source →
  10. 3.15.4 18 Feb 2026
    Release notes
    • [iOS] Fixed backend errors handling.

    Full Changelog: 3.15.3...3.15.4

    Open source →
    Release notes
    • [iOS] Fixed backend errors handling.
    Open source →
  11. 3.15.3 09 Jan 2026
    Release notes
    • [iOS] Fixed a bug where the placementId value was incorrect for AdaptyUIPaywallView.
    Open source →
  12. 3.15.2 07 Jan 2026
    Release notes
    • Onboardings: External links now work correctly. You can configure which browser is used by passing the externalUrlsPresentation parameter to the .createOnboardingView method or to the AdaptyUIOnboardingPlatformView constructor (.inAppBrowser by default).
    • [iOS] Now it is possible to prevent a new profile from being created after restoring a device from an iCloud backup by using the .withAppleClearDataOnBackup() setting in AdaptyConfiguration.
    Open source →
  13. 3.15.1 17 Dec 2025
    Release notes
    • [Android] Custom tags, timers, and assets now work correctly with AdaptyUIPaywallPlatformView
    Open source →
  14. 3.15.0 15 Dec 2025 withdrawn
    Release notes

    🎉 Meet the Adapty Flutter SDK 3.15.0!

    New

    • Support for Local Access Levels, allowing the SDK to verify purchases directly with the store even when Adapty servers are unreachable. Read More.
    • Support for StoreKit Testing in Xcode. Read More.
    • Added accessLevelId property for AdaptyPaywallProduct
    • [Android] Added support for Web Paywall: use .createWebPaywallUrl() or .openWebPaywall() to navigate users to an external webpage with alternative checkout options. Read More.
    • [Android] AdaptyUI: Added support for Web Paywall button. Read More.
    • The .openWebPaywall() method now supports a new openIn parameter. Available options: externalBrowser (default) and inAppBrowser.

    Fixes

    • [iOS] Fixed a bug that prevented purchases with a promo offer from being made when customerUserId is in UUID format.

    ⚠️ Breaking Changes

    • .withBackendBaseUrl(), .withBackendFallbackBaseUrl(), .withBackendConfigsBaseUrl(), .withBackendUABaseUrl() methods of AdaptyConfiguration were being removed, please use .withServerCluster() method to configure the SDK

    ❗️ Don't forget to update your local fallback file if needed.

    Open source →
  15. 3.11.4 04 Dec 2025
    Release notes
    • [iOS] Fixed a bug where custom timers would start at zero. #174
    Open source →
  16. 3.11.3 03 Nov 2025
    Release notes
    • [Android] Fixed onboarding dismiss issue
    Open source →
  17. 3.11.2 01 Oct 2025
    Release notes
    • Support for Adapty Android SDK 3.11.1
    • Various bug fixes and improvements
    Open source →
  18. 3.11.1 08 Sep 2025
    Release notes
    • [Android] Fixed AdaptyUIOnboardingPlatformView events
    Open source →
  19. 3.11.0 02 Sep 2025
    Release notes
    • Onboarding Builder now supports localizations. Read More.
    Open source →
  20. 3.10.0 08 Aug 2025
    Release notes
    • AdaptyUI: added support for purchase button animations
    • AdaptyUI: added support for productPurchaseParams in .createPaywallView method.

    Deprecations:

    • In .makePurchase method instead of subscriptionUpdateParams and isOfferPersonalized arguments use parameters.
    • In AdaptyPaywall model instead of vendorProductIds use productIdentifiers.
    Open source →
  21. 3.9.0 29 Jul 2025
    Release notes
    • Added support for the User Acquisition feature. Read more.
    • Minimum required Xcode version is now 16.0.
    • Various bug fixes and improvements.
    Open source →
  22. 3.8.4 16 Jul 2025
    Release notes
    • Changed the makePurchase() method signature when using parameters other than product – they have been extracted into AdaptyPurchaseParameters
    • [Android] Migrated to PBL v7
    • [Android] Added support for obfuscatedProfileId and obfuscatedAccountId
    • [iOS] Fixed support for Xcode 26
    Open source →
  23. 3.8.3 07 Jul 2025
    Release notes
    • [Android] Fixed AdaptyUI rendering issues
    Open source →
  24. 3.8.2 25 Jun 2025
    Release notes
    • [Android] Fixed AdaptyUI rendering issues
    Open source →
  25. 3.8.1 16 Jun 2025
    Release notes
    • [iOS] Fixed dependency issue
    Open source →
  26. 3.8.0 16 Jun 2025
    Release notes

    Meet the Adapty iOS SDK 3.8.0!

    🎉 With this version we're introducing support for the Onboarding Builder that allows your non-technical teams to create attractive and customizable onboarding flows without coding. Read More.

    New

    • AdaptyUI: added support for Onboarding Builder.
    • AdaptyUI: added assetsResolver parameter to getPaywallConfiguration method.
    • AdaptyUI: added paywallPlacementId and paywallVariationId public fields for AdaptyPaywallController.

    ⚠️ Breaking Changes

    • setFallbackPaywalls(fileURL:) renamed to setFallback(fileURL:).
    • AdaptyUI: AdaptyUIView was renamed to AdaptyUIPaywallView.
    Open source →
  27. 3.6.1 16 May 2025
    Release notes
    • [Android] Fix AdaptyUI video support
    Open source →
  28. 3.6.0 12 May 2025 withdrawn
    Release notes
    • Adapty:
      • Crossplacement A/B Test: Introduced support for Crossplacement A/B testing – a test type that spans multiple placements within your app. Read more.
      • Support for Web Paywall: use .createWebPaywallUrl or .openWebPaywall to navigate users to an external webpage with alternative checkout options. Read More.
      • Resolved an issue where, in some cases, a profileWasChanged error could be thrown when calling .getPaywall immediately after activating the sdk with a customerUserId.
    • AdaptyUI:
      • Added support for Web Paywall button. Read More.
      • Fixed various rendering issues.
    Open source →
  29. 3.4.1 01 Apr 2025
    Release notes
    • Fixed support for Xcode 16.3
    Open source →
  30. 3.4.0 27 Mar 2025
    Release notes
    • Added audienceName property to AdaptyPaywall struct.
    • Added updateCollectingRefundDataConsent and updateRefundPreference methods. Read More.
    • Unified reportTransaction behaviour for iOS and Android.
    Open source →
  31. 3.3.2 19 Feb 2025
    Release notes
    • AdaptyConfiguration: add withAppleIdfaCollectionDisabled parameter.
    • AdaptyConfiguration: add withGoogleAdvertisingIdCollectionDisabled parameter.
    • AdaptyConfiguration: withIdfaCollectionDisabled is now deprecated, use withAppleIdfaCollectionDisabled instead.
    • [Android] Fix support for Flutter 3.29.0 (issue 151)
    • Fix issue 142
    • Fix issue 143
    • Fix issue 152
    Open source →
  32. 3.3.1 06 Jan 2025
    Release notes
    • [Android] Fix AdaptyUI Close button
    Open source →
  33. 3.3.0 31 Dec 2024
    Release notes

    ⚠️ Breaking Changes

    Activation

    • You no longer need to activate AdaptyUI separately, as it is now handled automatically during the usual activation process. Use .withMediaCacheConfiguration in AdaptyConfiguration if you wish to override the default settings:
    await Adapty().activate(
      configuration: AdaptyConfiguration(apiKey: 'YOUR_API_KEY')
        ..withMediaCacheConfiguration(...),
    );
    

    Integrations and Attribution Configuration. Read More.

    • New Method for Setting Integration Identifiers:

      • Introduced setIntegrationIdentifier(key:value:):
        • Previously, integrations were configured using the updateProfile method, passing integration IDs to the builder.
        • Now, use setIntegrationIdentifier to set integration identifiers with a key and value.
    • Updated updateAttribution Method:

      • The source parameter is now a String instead of an enum.
      • The networkUserId parameter has been removed. Use setIntegrationIdentifier to set the networkUserId instead.

    Observer Mode. Read More.

    • ‼️ Transactions must now be explicitly reported when using Observer Mode:
      • Replace calls to setVariationId() with reportTransaction(transactionId:,variationId:) after every transaction.finish().
      • The variationId parameter in reportTransaction is now optional.
    Open source →
  34. 3.2.5 18 Dec 2024
    Release notes
    • [iOS] Fix errors in Xcode 15.0 (#100).
    • [iOS] Fix an issue where an unwanted profile was sometimes created after the identify method was called
    Open source →
  35. 3.2.4 13 Dec 2024
    Release notes
    • [iOS] Added support for Xcode 16.2
    • [iOS] Fixed support for Xcode 15.x
    Open source →
  36. 3.2.3 05 Dec 2024
    Release notes
    • AdaptyUI: Internal improvements to paywall rendering
    • Fixed an issue where isActivated() method returned incorrect value
    • Fixed an issue where content field of AdaptyUIDialog was not displaying correctly
    • Fixed an issue with subscriptionUpdateParams wrong serialization
    • Added setupAfterHotRestart method to Adapty and AdaptyUI which allows you to initialize the plugin after hot restart. Please check isActivated before calling this method. Please consider using this method in debug builds only to avoid any unexpected issues in release builds.
    Open source →
  37. 3.2.2 22 Nov 2024
    Release notes
    • added missing models exports
    Open source →
  38. 3.2.1 20 Nov 2024
    Release notes
    • AdaptyErrorCode change final to const
    • [Android] Plugin fix
    Open source →
  39. 3.2.0 19 Nov 2024
    Release notes

    🎉 Meet the Adapty Flutter SDK 3.2.0!

    With this version we're introducing support for the new paywall builder that offers more templates and layout flexibility. Note that:

    • This version doesn't support paywalls created in the legacy (current) paywall builder
    • But you can easily migrate those with a single press of a button in Adapty Dashboard

    On top of that, this version also offers complete support of StoreKit 2 and Swift 6 on the iOS side. See more here.

    Breaking Changes:

    • Adapty and AdaptyUI are now a single module, so you don't need to import them separately.
    • makePurchase now returns AdaptyPurchaseResult instead of AdaptyPurchasedInfo.
    • getProductsIntroductoryOfferEligibility(products:) has been removed. The getPaywallProducts function now returns a product object with prepopulated offer information. Consider using the getPaywallProductsWithoutDeterminingOffer(paywall:) method if you need to load products without determining offer eligibilities.
    • paywallViewDidFinishPurchase now accepts AdaptyPurchaseResult instead of AdaptyPurchasedInfo.
    • paywallViewDidSelectProduct now accepts String (productId) instead of AdaptyPaywallProduct.
    • paywallViewDidCancelPurchase has been removed. Please use the purchaseResult from paywallViewDidFinishPurchase to detect purchase cancellations.
    Open source →
  40. 2.10.6 18 Jul 2025

    Nothing published for this version

  41. 2.10.5 12 Jul 2025

    Nothing published for this version

  42. 2.10.4 16 Oct 2024
    Release notes
    • [Android] Add parameters to activate method
    Open source →
  43. 2.10.3 26 Sep 2024
    Release notes
    • Support for Flutter 3.22+
    Open source →
  44. 2.10.2 22 Aug 2024
    Release notes
    • Support for Flutter 3.22+
    Open source →
  45. 2.10.1 05 Apr 2024
    Release notes
    • Support for Adapty iOS SDK 2.10.3
    • Support for Adapty Android SDK 2.10.4
    Open source →
  46. 2.10.0 15 Mar 2024
    Release notes

    ⚠️ Warning: In this version, we have changed the minimal supported versions:

    • The minimal iOS version is now 12.2.
    • The minimal Xcode version is now 15.0.

    ⚠️ Breaking Changes:

    • [iOS] We are no longer support AdaptyStoreKit2Usage parameter in the the Adapty-Info.plist method. Adapty SDK now utilizes the StoreKit 2 method for introductory offer eligibility checks if available.
    Open source →
  47. 2.9.3 26 Feb 2024
    Release notes
    • [Android] Fixed the incorrect format of some analytics events in rare cases.
    Open source →
  48. 2.9.2 23 Feb 2024
    Release notes
    • Added support for AdaptyUI 2.1.x
    • [iOS] Fixed an issue with wrong device name in some cases on MacOS.
    Open source →
  49. 2.9.1 12 Feb 2024
    Release notes
    • [iOS] Fixed support for Swift 5.7.x (Xcode 14.0 - 14.2)
    • [iOS] Fixed an issue with repeated calls to the API when the device is offline
    • [Android] Redesigned analytics event system
    • [Android] Improved mechanism for usage logs collection
    Open source →
  50. 2.9.0 29 Dec 2023
    Release notes

    ⚠️ Warning: This version relies on StoreKit 2 instead of StoreKit 1. Starting from this version, you must connect your account to Apple In-App Purchase API in Adapty Dashboard. Otherwise, we won't be able to make or validate purchases.

    New:

    • Since this version we are using CDN. This technology helps us to synchronize data much faster.
    • Added an option to retrieve paywalls from local cache by passing fetchPolicy parameter into .getPaywall() method
    • Added an option to specify paywall fetching timeout by passing loadTimeout parameter into .getPaywall() method

    Read More in our documentation.

    Breaking Changes:

    • placementId parameter has been added to the getPaywall method, replacing the previously unnamed parameter id. Read More
    • AdaptyEnableUsageLogs of Adapty-Info.plist is no longer supported, since this feature is enabled by default. Read More
    • If you will not put the AdaptyStoreKit2Usage parameter to Adapty-Info.plist, the default value will be .forIntroEligibilityCheck (this means that by default we will fetch introductory offers eligibility using StoreKit 2). Read More
    Open source →
  51. 2.7.1 01 Nov 2023
    Release notes
    • [Android] fixes for AdaptyUI library
    Open source →
  52. 2.7.0 05 Oct 2023
    Release notes
    • [iOS] Update Adapty-iOS dependency to 2.7.0
    • [Android] Update Adapty-Android dependency to 2.7.0
    Open source →
  53. 2.6.2 16 Aug 2023
    Release notes
    • [Android] Updated retry logic according to new PBL error.
    Open source →
  54. 2.6.1 14 Aug 2023
    Release notes
    • [Android] Fixed error on purchase validation.
    • [Android] Support for Google Billing Library v5+. Read More
    • [iOS] Since this version, the Adapty SDK will observe StoreKit 2 transactions, which will be helpful if you are using observer mode.
    • [iOS] Introduced a new functionality for retrieving introductory offers eligibility using StoreKit 2. To fetch it, you should now use a separate method called .getProductsIntroductoryOfferEligibility. The behavior of this function depends on your Adapty SDK configuration. It will utilize StoreKit 2 if available or fallback to a legacy logic based on receipt analysis. For more detailed information, please refer to our documentation. Read more
    • AdaptyPaywallProduct now has a unified structure for both systems.
    Open source →
  55. 2.6.0 10 Aug 2023
    Release notes
    • [Android] Support for Google Billing Library v5+. Read More
    • [iOS] Since this version, the Adapty SDK will observe StoreKit 2 transactions, which will be helpful if you are using observer mode.
    • [iOS] Introduced a new functionality for retrieving introductory offers eligibility using StoreKit 2. To fetch it, you should now use a separate method called .getProductsIntroductoryOfferEligibility. The behavior of this function depends on your Adapty SDK configuration. It will utilize StoreKit 2 if available or fallback to a legacy logic based on receipt analysis. For more detailed information, please refer to our documentation. Read more
    • AdaptyPaywallProduct now has a unified structure for both systems.
    Open source →
  56. 2.4.4 01 Jun 2023
    Release notes
    • Added hasViewConfiguration for AdaptyPaywall object
    Open source →
  57. 2.4.3 26 Apr 2023
    Release notes
    • [iOS] Improved variation_id delivery mechanism when validating purchases (iOS 2.4.4)
    • [iOS] Improved mechanism for Usage Logs collection (iOS 2.4.5)
    • [iOS] Fixed a bug which caused wrong error codes from StoreKit to be passed to the cross platform SDKs (iOS 2.4.5)
    Open source →
  58. 2.4.1 17 Mar 2023
    Release notes
    • [Android] fixed subscription change functionality
    Open source →
  59. 2.4.0 08 Mar 2023
    Release notes
    • Changed the logic of working with fallback paywalls - now the SDK will not wait for the creation of a profile
    • Added an option to set airbridgeDeviceId to user profile
    • The logging system has been improved: all requests and responses from the server are now logged in verbose mode, and the computation required for logging has been optimized
    • Increased the length and number of custom attributes
    Open source →
  60. 2.3.1 21 Feb 2023
    Release notes
    • [Android] updated dependency to 2.3.2
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive