PackageTrack
Sign in Get early access

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.

4.0.4 adaptyteam/AdaptySDK-Flutter

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 2026
Release Pre-release Withdrawn

Releases

latest 5
  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 →

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