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.
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 2026Releases
latest 60 of 91-
4.0.414 Aug 2026Release notes
Open source →⚠️ Changed
- [Android]
restorePurchases()no longer throws when there is nothing to restore. It now completes successfully with the currentAdaptyProfile— 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_colorandtext_backgroundkeys. The oldcolorandbackgroundkeys 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 byrestorePurchases().
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
Release notes
Open source →- [Android]
restorePurchases()no longer fails withnoPurchasesToRestorewhen there is nothing to restore. It now completes successfully with the currentAdaptyProfile— check the access level status in the returned profile instead of catching an error.AdaptyErrorCode.noPurchasesToRestoreis 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_colorandtext_backgroundkeys. The oldcolorandbackgroundkeys 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.
- [Android]
-
4.0.330 Jul 2026Release notes
Open source →🚀 New
-
AdaptyUI.createFlowViewandAdaptyUIFlowPlatformViewnow accept alocale— 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
localethe view is rendered inen, falling back to the flow's default localization when the flow has noen. 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. -
AdaptyUIFlowViewnow reports thelocalethe view was actually built with, so you can tell which localization was applied.
🩹 Fixed
- Custom gradient assets lost all of their colors when the
LinearGradienthad no explicitstops— the idiomaticLinearGradient(colors: [a, b])reached the native side with no colors at all. Affected both platforms.
⚠️ Deprecated
- The
localeargument ofgetFlowandgetFlowForDefaultAudiencehas 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 tocreateFlowVieworAdaptyUIFlowPlatformViewinstead.
Native dependencies in this release: iOS 4.0.2, Android 4.0.1.
Full Changelog: 4.0.2...4.0.3
Release notes
Open source →-
AdaptyUI.createFlowViewandAdaptyUIFlowPlatformViewnow accept alocale— 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
localethe view is rendered inen, falling back to the flow's default localization when the flow has noen. 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. -
AdaptyUIFlowViewnow reports thelocalethe view was actually built with, so you can tell which localization was applied. It isnullwhen paired with an older native SDK. -
The
localeargument ofgetFlowandgetFlowForDefaultAudiencehas 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 tocreateFlowVieworAdaptyUIFlowPlatformViewinstead. -
Fixed custom gradient assets losing all of their colors when the
LinearGradienthad no explicitstops. Affected both platforms.
-
-
4.0.217 Jul 2026Release notes
Open source →🩹 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_kidsno longer importsAppTrackingTransparency— 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/paywallsymbols are renamed toFlow/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.
AdaptyPaywallis split intoAdaptyFlow(+AdaptyFlowPaywall);AdaptyUIPaywallView→AdaptyUIFlowView;Adapty().getPaywall(...)→getFlow(...)andgetPaywallForDefaultAudience(...)→getFlowForDefaultAudience(...);AdaptyUI().createPaywallView(...)→createFlowView(...);logShowPaywall(...)→logShowFlow(...). - Events observer renamed.
AdaptyUIPaywallsEventsObserver→AdaptyUIFlowsEventsObserver(setPaywallsEventsObserver→setFlowsEventsObserver); allpaywallViewDid*callbacks →flowViewDid*. The separate rendering-failure callback is folded intoflowViewDidReceiveError. AdaptyPaywallViewConfigurationis no longer exposed; the view configuration is now opaque.- Removed APIs deprecated back in 3.x:
Adapty.setFallbackPaywalls()(usesetFallback()),AdaptyConfigurationBuilder.withIdfaCollectionDisabled()(usewithAppleIdfaCollectionDisabled()),AdaptyFlow.placementId/AdaptyFlow.revision(useplacement.id/placement.revision),AdaptyPurchaseResultSuccess.jwsTransaction(useappleJwsTransaction), andAdaptyUIFlowView.paywallVariationId(usevariationId). - 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
AndroidSystemBackActionin 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 viaAdaptyUI().setSystemRequestsHandler(...).AdaptyUIObserverModeResolver— drive purchases and restores initiated from flows while running in Observer Mode. Register viaAdaptyUI().setObserverModeResolver(...).flowViewDidReceiveAnalyticEvent— receive customer-facing analytic events emitted by a flow.Adapty.openWebPaywallandAdapty.createWebPaywallUrlnow accept anAdaptyFlowPaywallin addition to anAdaptyPaywallProduct.setFlowsEventsObserver/setOnboardingsEventsObservernow acceptnullto 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 relatedAdapty/AdaptyUImethods (getOnboarding,getOnboardingForDefaultAudience,create/present/dismissOnboardingView,register/unregister/setOnboardingsEventsObserver) are now annotated@Deprecated.
Full Changelog: 3.17.1...4.0.0
Release notes
Open source →- [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_kidsno longer importsAppTrackingTransparency— the native ATT surface is now fully compiled out under the kids trait. - [iOS] Native iOS SDK dependency pinned to
4.0.1.
- [iOS] Crash (
-
4.0.115 Jul 2026Release notes
Open source →🩹 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/paywallsymbols are renamed toFlow/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.
AdaptyPaywallis split intoAdaptyFlow(+AdaptyFlowPaywall);AdaptyUIPaywallView→AdaptyUIFlowView;Adapty().getPaywall(...)→getFlow(...)andgetPaywallForDefaultAudience(...)→getFlowForDefaultAudience(...);AdaptyUI().createPaywallView(...)→createFlowView(...);logShowPaywall(...)→logShowFlow(...). - Events observer renamed.
AdaptyUIPaywallsEventsObserver→AdaptyUIFlowsEventsObserver(setPaywallsEventsObserver→setFlowsEventsObserver); allpaywallViewDid*callbacks →flowViewDid*. The separate rendering-failure callback is folded intoflowViewDidReceiveError. AdaptyPaywallViewConfigurationis no longer exposed; the view configuration is now opaque.- Removed APIs deprecated back in 3.x:
Adapty.setFallbackPaywalls()(usesetFallback()),AdaptyConfigurationBuilder.withIdfaCollectionDisabled()(usewithAppleIdfaCollectionDisabled()),AdaptyFlow.placementId/AdaptyFlow.revision(useplacement.id/placement.revision),AdaptyPurchaseResultSuccess.jwsTransaction(useappleJwsTransaction), andAdaptyUIFlowView.paywallVariationId(usevariationId). - 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
AndroidSystemBackActionin 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 viaAdaptyUI().setSystemRequestsHandler(...).AdaptyUIObserverModeResolver— drive purchases and restores initiated from flows while running in Observer Mode. Register viaAdaptyUI().setObserverModeResolver(...).flowViewDidReceiveAnalyticEvent— receive customer-facing analytic events emitted by a flow.Adapty.openWebPaywallandAdapty.createWebPaywallUrlnow accept anAdaptyFlowPaywallin addition to anAdaptyPaywallProduct.setFlowsEventsObserver/setOnboardingsEventsObservernow acceptnullto 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 relatedAdapty/AdaptyUImethods (getOnboarding,getOnboardingForDefaultAudience,create/present/dismissOnboardingView,register/unregister/setOnboardingsEventsObserver) are now annotated@Deprecated.
Full Changelog: 3.17.1...4.0.0
Release notes
Open source →- [iOS] Pin the native iOS SDK dependency to exactly
4.0.0(wasfrom: "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.
-
4.0.014 Jul 2026 withdrawnRelease notes
Open source →⚠️ Major release with breaking API changes. The "paywall" concept is generalized into flow; most
Paywall/paywallsymbols are renamed toFlow/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.
AdaptyPaywallis split intoAdaptyFlow(+AdaptyFlowPaywall);AdaptyUIPaywallView→AdaptyUIFlowView;Adapty().getPaywall(...)→getFlow(...)andgetPaywallForDefaultAudience(...)→getFlowForDefaultAudience(...);AdaptyUI().createPaywallView(...)→createFlowView(...);logShowPaywall(...)→logShowFlow(...). - Events observer renamed.
AdaptyUIPaywallsEventsObserver→AdaptyUIFlowsEventsObserver(setPaywallsEventsObserver→setFlowsEventsObserver); allpaywallViewDid*callbacks →flowViewDid*. The separate rendering-failure callback is folded intoflowViewDidReceiveError. AdaptyPaywallViewConfigurationis no longer exposed; the view configuration is now opaque.- Removed APIs deprecated back in 3.x:
Adapty.setFallbackPaywalls()(usesetFallback()),AdaptyConfigurationBuilder.withIdfaCollectionDisabled()(usewithAppleIdfaCollectionDisabled()),AdaptyFlow.placementId/AdaptyFlow.revision(useplacement.id/placement.revision),AdaptyPurchaseResultSuccess.jwsTransaction(useappleJwsTransaction), andAdaptyUIFlowView.paywallVariationId(usevariationId). - 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
AndroidSystemBackActionin 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 viaAdaptyUI().setSystemRequestsHandler(...).AdaptyUIObserverModeResolver— drive purchases and restores initiated from flows while running in Observer Mode. Register viaAdaptyUI().setObserverModeResolver(...).flowViewDidReceiveAnalyticEvent— receive customer-facing analytic events emitted by a flow.Adapty.openWebPaywallandAdapty.createWebPaywallUrlnow accept anAdaptyFlowPaywallin addition to anAdaptyPaywallProduct.setFlowsEventsObserver/setOnboardingsEventsObservernow acceptnullto 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 relatedAdapty/AdaptyUImethods (getOnboarding,getOnboardingForDefaultAudience,create/present/dismissOnboardingView,register/unregister/setOnboardingsEventsObserver) are now annotated@Deprecated.
Full Changelog: 3.17.1...4.0.0
Release notes
Open source →⚠️ Major release with breaking API changes. The "paywall" concept is generalized into "flow"; most
Paywall/paywallUI symbols are renamed toFlow/flow, and previously deprecated aliases are removed.⚠️ Breaking Changes
- Paywall → Flow rename.
AdaptyPaywallis split intoAdaptyFlow(+AdaptyFlowPaywall);AdaptyUIPaywallView→AdaptyUIFlowView;Adapty().getPaywall(...)→getFlow(...)andgetPaywallForDefaultAudience(...)→getFlowForDefaultAudience(...);AdaptyUI().createPaywallView(...)→createFlowView(...);logShowPaywall(...)→logShowFlow(...). - Events observer renamed.
AdaptyUIPaywallsEventsObserver→AdaptyUIFlowsEventsObserver(setPaywallsEventsObserver→setFlowsEventsObserver); allpaywallViewDid*callbacks →flowViewDid*. The separate rendering-failure callback is folded intoflowViewDidReceiveError. AdaptyPaywallViewConfigurationis no longer exposed; the view configuration is now opaque.- Removed APIs that were deprecated back in 3.x:
Adapty.setFallbackPaywalls()(usesetFallback()),AdaptyConfigurationBuilder.withIdfaCollectionDisabled()(usewithAppleIdfaCollectionDisabled()),AdaptyFlow.placementId/AdaptyFlow.revision(useplacement.id/placement.revision),AdaptyPurchaseResultSuccess.jwsTransaction(useappleJwsTransaction), andAdaptyUIFlowView.paywallVariationId(usevariationId). - 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
AndroidSystemBackActionin 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 viaAdaptyUI().setSystemRequestsHandler(...).AdaptyUIObserverModeResolver— drive purchases and restores initiated from flows while running in Observer Mode. Register viaAdaptyUI().setObserverModeResolver(...).flowViewDidReceiveAnalyticEvent— receive customer-facing analytic events emitted by a flow.Adapty.openWebPaywallandAdapty.createWebPaywallUrlnow accept anAdaptyFlowPaywallin addition to anAdaptyPaywallProduct.setFlowsEventsObserver/setOnboardingsEventsObservernow acceptnullto 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 relatedAdapty/AdaptyUImethods (getOnboarding,getOnboardingForDefaultAudience,create/present/dismissOnboardingView,register/unregister/setOnboardingsEventsObserver) are now annotated@Deprecated.
-
3.17.217 Jul 2026Release notes
Open source →- [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.
Release notes
Open source →- [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.
-
3.17.102 Jul 2026Release notes
Open source →- [Android] Updated native Android SDK to 3.17.2.
- [Android] Fixed AGP 9 and Built-In Kotlin support.
Release notes
Open source →- [Android] Updated native Android SDK to 3.17.2.
- [Android] Fixed AGP 9 and Built-In Kotlin support.
-
3.17.005 Jun 2026Release notes
Open source →⚠️ 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.0the SDK has been compatible with Billing Library 8 (opt-in); it is now used by default. OpenUrlActionnow carries anopenInparameter (AdaptyWebPresentation) indicating where the URL should be opened — external browser or in-app browser.AdaptyProfilenow exposesappliedAttributionSources(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.swiftalongside the CocoaPods podspec, so apps with SwiftPM enabled build it via SwiftPM while CocoaPods keeps working unchanged. #184
⚠️ Breaking Changes
OpenUrlActionconstructor signature changed: it now requires a second positional argumentopenInof typeAdaptyWebPresentation.
Native
- [iOS] Updated native iOS SDK to 3.17.2.
- [Android] Updated native Android SDK to 3.17.1.
Release notes
Open source →New
OpenUrlActionnow carries anopenInparameter (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.swiftalongside the CocoaPods podspec, so apps with SwiftPM enabled build it via SwiftPM while CocoaPods keeps working unchanged. AdaptyProfilenow exposesappliedAttributionSources(List<AdaptyAttributionSource>), reporting which attribution sources have been applied to the profile (e.g.appleSearchAds).
⚠️ Breaking Changes
OpenUrlActionconstructor signature changed: it now requires a second positional argumentopenInof typeAdaptyWebPresentation. The action instances are normally produced by the SDK from native events, so most integrations are unaffected; direct constructions need an explicitopenIn.
Native
- [iOS] Updated native iOS SDK to 3.17.2.
- [Android] Updated native Android SDK to 3.17.1.
- [Android] Google Play Billing Library 8 is now the default. Since
-
3.15.525 Mar 2026 -
3.15.418 Feb 2026 -
3.15.309 Jan 2026Release notes
Open source →- [iOS] Fixed a bug where the
placementIdvalue was incorrect forAdaptyUIPaywallView.
- [iOS] Fixed a bug where the
-
3.15.207 Jan 2026Release notes
Open source →- Onboardings: External links now work correctly. You can configure which browser is used by passing the
externalUrlsPresentationparameter to the.createOnboardingViewmethod or to theAdaptyUIOnboardingPlatformViewconstructor (.inAppBrowserby 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 inAdaptyConfiguration.
- Onboardings: External links now work correctly. You can configure which browser is used by passing the
-
3.15.117 Dec 2025Release notes
Open source →- [Android] Custom tags, timers, and assets now work correctly with
AdaptyUIPaywallPlatformView
- [Android] Custom tags, timers, and assets now work correctly with
-
3.15.015 Dec 2025 withdrawnRelease notes
Open source →🎉 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
accessLevelIdproperty forAdaptyPaywallProduct - [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 newopenInparameter. Available options:externalBrowser(default) andinAppBrowser.
Fixes
- [iOS] Fixed a bug that prevented purchases with a promo offer from being made when
customerUserIdis in UUID format.
⚠️ Breaking Changes
.withBackendBaseUrl(),.withBackendFallbackBaseUrl(),.withBackendConfigsBaseUrl(),.withBackendUABaseUrl()methods ofAdaptyConfigurationwere being removed, please use.withServerCluster()method to configure the SDK
❗️ Don't forget to update your local fallback file if needed.
-
3.11.404 Dec 2025 -
3.11.303 Nov 2025 -
3.11.201 Oct 2025Release notes
Open source →- Support for Adapty Android SDK 3.11.1
- Various bug fixes and improvements
-
3.11.108 Sep 2025 -
3.11.002 Sep 2025 -
3.10.008 Aug 2025Release notes
Open source →- AdaptyUI: added support for purchase button animations
- AdaptyUI: added support for
productPurchaseParamsin.createPaywallViewmethod.
Deprecations:
- In
.makePurchasemethod instead ofsubscriptionUpdateParamsandisOfferPersonalizedarguments useparameters. - In
AdaptyPaywallmodel instead ofvendorProductIdsuseproductIdentifiers.
-
3.9.029 Jul 2025Release notes
Open source →- Added support for the User Acquisition feature. Read more.
- Minimum required Xcode version is now 16.0.
- Various bug fixes and improvements.
-
3.8.416 Jul 2025Release notes
Open source →- Changed the
makePurchase()method signature when using parameters other thanproduct– they have been extracted intoAdaptyPurchaseParameters - [Android] Migrated to PBL v7
- [Android] Added support for
obfuscatedProfileIdandobfuscatedAccountId - [iOS] Fixed support for Xcode 26
- Changed the
-
3.8.307 Jul 2025 -
3.8.225 Jun 2025 -
3.8.116 Jun 2025 -
3.8.016 Jun 2025Release notes
Open source →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
assetsResolverparameter togetPaywallConfigurationmethod. - AdaptyUI: added
paywallPlacementIdandpaywallVariationIdpublic fields forAdaptyPaywallController.
⚠️ Breaking Changes
setFallbackPaywalls(fileURL:)renamed tosetFallback(fileURL:).- AdaptyUI:
AdaptyUIViewwas renamed toAdaptyUIPaywallView.
-
3.6.116 May 2025 -
3.6.012 May 2025 withdrawnRelease notes
Open source →- 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
.createWebPaywallUrlor.openWebPaywallto navigate users to an external webpage with alternative checkout options. Read More. - Resolved an issue where, in some cases, a
profileWasChangederror could be thrown when calling.getPaywallimmediately after activating the sdk with acustomerUserId.
- AdaptyUI:
- Added support for Web Paywall button. Read More.
- Fixed various rendering issues.
- Adapty:
-
3.4.101 Apr 2025 -
3.4.027 Mar 2025Release notes
Open source →- Added
audienceNameproperty toAdaptyPaywallstruct. - Added
updateCollectingRefundDataConsentandupdateRefundPreferencemethods. Read More. - Unified
reportTransactionbehaviour for iOS and Android.
- Added
-
3.3.219 Feb 2025Release notes
Open source →- AdaptyConfiguration: add
withAppleIdfaCollectionDisabledparameter. - AdaptyConfiguration: add
withGoogleAdvertisingIdCollectionDisabledparameter. - AdaptyConfiguration:
withIdfaCollectionDisabledis now deprecated, usewithAppleIdfaCollectionDisabledinstead. - [Android] Fix support for Flutter 3.29.0 (issue 151)
- Fix issue 142
- Fix issue 143
- Fix issue 152
- AdaptyConfiguration: add
-
3.3.106 Jan 2025 -
3.3.031 Dec 2024Release notes
Open source →⚠️ Breaking Changes
Activation
- You no longer need to activate AdaptyUI separately, as it is now handled automatically during the usual activation process. Use
.withMediaCacheConfigurationin 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
updateProfilemethod, passing integration IDs to the builder. - Now, use
setIntegrationIdentifierto set integration identifiers with akeyandvalue.
- Previously, integrations were configured using the
- Introduced
-
Updated
updateAttributionMethod:- The
sourceparameter is now aStringinstead of an enum. - The
networkUserIdparameter has been removed. UsesetIntegrationIdentifierto set thenetworkUserIdinstead.
- The
Observer Mode. Read More.
- ‼️ Transactions must now be explicitly reported when using Observer Mode:
- Replace calls to
setVariationId()withreportTransaction(transactionId:,variationId:)after everytransaction.finish(). - The
variationIdparameter inreportTransactionis now optional.
- Replace calls to
- You no longer need to activate AdaptyUI separately, as it is now handled automatically during the usual activation process. Use
-
3.2.518 Dec 2024Release notes
Open source →- [iOS] Fix errors in Xcode 15.0 (#100).
- [iOS] Fix an issue where an unwanted profile was sometimes created after the
identifymethod was called
-
3.2.413 Dec 2024 -
3.2.305 Dec 2024Release notes
Open source →- AdaptyUI: Internal improvements to paywall rendering
- Fixed an issue where
isActivated()method returned incorrect value - Fixed an issue where
contentfield ofAdaptyUIDialogwas not displaying correctly - Fixed an issue with
subscriptionUpdateParamswrong serialization - Added
setupAfterHotRestartmethod to Adapty and AdaptyUI which allows you to initialize the plugin after hot restart. Please checkisActivatedbefore calling this method. Please consider using this method in debug builds only to avoid any unexpected issues in release builds.
-
3.2.222 Nov 2024 -
3.2.120 Nov 2024 -
3.2.019 Nov 2024Release notes
Open source →🎉 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.
makePurchasenow returnsAdaptyPurchaseResultinstead ofAdaptyPurchasedInfo.getProductsIntroductoryOfferEligibility(products:)has been removed. ThegetPaywallProductsfunction now returns a product object with prepopulated offer information. Consider using thegetPaywallProductsWithoutDeterminingOffer(paywall:)method if you need to load products without determining offer eligibilities.paywallViewDidFinishPurchasenow acceptsAdaptyPurchaseResultinstead ofAdaptyPurchasedInfo.paywallViewDidSelectProductnow acceptsString(productId) instead ofAdaptyPaywallProduct.paywallViewDidCancelPurchasehas been removed. Please use thepurchaseResultfrompaywallViewDidFinishPurchaseto detect purchase cancellations.
-
2.10.618 Jul 2025Nothing published for this version
-
2.10.512 Jul 2025Nothing published for this version
-
2.10.416 Oct 2024 -
2.10.326 Sep 2024 -
2.10.222 Aug 2024 -
2.10.105 Apr 2024 -
2.10.015 Mar 2024Release notes
Open source →⚠️ 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
AdaptyStoreKit2Usageparameter in the theAdapty-Info.plistmethod. Adapty SDK now utilizes the StoreKit 2 method for introductory offer eligibility checks if available.
-
2.9.326 Feb 2024Release notes
Open source →- [Android] Fixed the incorrect format of some analytics events in rare cases.
-
2.9.223 Feb 2024Release notes
Open source →- Added support for AdaptyUI 2.1.x
- [iOS] Fixed an issue with wrong device name in some cases on MacOS.
-
2.9.112 Feb 2024Release notes
Open source →- [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
-
2.9.029 Dec 2023Release notes
Open source →⚠️ 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
fetchPolicyparameter into.getPaywall()method - Added an option to specify paywall fetching timeout by passing
loadTimeoutparameter into.getPaywall()method
Read More in our documentation.
Breaking Changes:
placementIdparameter has been added to thegetPaywallmethod, replacing the previously unnamed parameterid. Read MoreAdaptyEnableUsageLogsofAdapty-Info.plistis no longer supported, since this feature is enabled by default. Read More- If you will not put the
AdaptyStoreKit2Usageparameter toAdapty-Info.plist, the default value will be.forIntroEligibilityCheck(this means that by default we will fetch introductory offers eligibility using StoreKit 2). Read More
-
2.7.101 Nov 2023 -
2.7.005 Oct 2023Release notes
Open source →- [iOS] Update Adapty-iOS dependency to 2.7.0
- [Android] Update Adapty-Android dependency to 2.7.0
-
2.6.216 Aug 2023 -
2.6.114 Aug 2023Release notes
Open source →- [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
AdaptyPaywallProductnow has a unified structure for both systems.
-
2.6.010 Aug 2023Release notes
Open source →- [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
AdaptyPaywallProductnow has a unified structure for both systems.
-
2.4.401 Jun 2023 -
2.4.326 Apr 2023Release notes
Open source →- [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)
-
2.4.117 Mar 2023 -
2.4.008 Mar 2023Release notes
Open source →- 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
airbridgeDeviceIdto 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
-
2.3.121 Feb 2023