adapty_flutter_kids
Kids Mode (COPPA / App Store Kids Category) variant of adapty_flutter. iOS compiles out IDFA / AdSupport via the AdaptySDK-iOS KidsMode trait; same public API.
What this package is like to depend on
Last release 9 days ago
14 Aug 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 4 of 4 stable releases
1 version withdrawn
withdrawn after publishing
1 months old
5 releases · first in 2026
5 releases in the last 12 months
see the full history below
Release timeline
5 releases · Jul 2026 to Aug 2026Releases
latest 5-
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.