superwallkit_flutter 2.6.0 copy "superwallkit_flutter: ^2.6.0" to clipboard
superwallkit_flutter: ^2.6.0 copied to clipboard

Remotely configure every aspect of your paywall and double your revenue.

CHANGELOG #

The changelog for Superwall. Also see the releases on GitHub.

2.6.0 #

Enhancements #

  • Updates Android SDK to 2.8.4 View Android SDK release notes.
  • Updates iOS SDK to 4.17.0 View iOS SDK release notes.
  • Adds Superwall.shared.getProducts(productIds) to fetch StoreProducts (including price, localized price and currency code) outside of a paywall. Unknown identifiers are omitted.
  • Adds Superwall.shared.purchase(productId) to purchase a product through Superwall outside of a paywall, returning the native PurchaseResult. Purchase controller and observer mode behavior matches the native SDKs.
  • Adds Android-only Superwall.shared.queryInAppPurchases(), returning owned one-time purchases in the PURCHASED state with their product IDs and purchase tokens, so the benefit can be granted before calling consume().

⚠️ Android: Google Play Billing Library 9 migration #

This release moves the Android SDK from 2.7.x to 2.8.x, which updates the Google Play Billing Library from 8.0.0 to 9.1.0. See the Play Billing Library 9 migration guide for the full list of changes. The notes below are copied from the Android SDK 2.8.0 release notes.

  • Impact: if your app still calls the removed Billing Library APIs (SkuDetails, SkuDetailsParams, querySkuDetailsAsync, queryPurchaseHistoryAsync, BillingClient.SkuType, or the no-arg enablePendingPurchases()), it will no longer compile once it picks up Billing 9 through this SDK. Migrate those call sites to the ProductDetails APIs before upgrading; the migration guide has a mapping of every removed API to its replacement.

  • Please test your billing and purchasing flows before shipping this upgrade. Because the Billing Library is resolved to a single version across your app, upgrading Superwall also upgrades Billing for everything else that depends on it. If you use Google Play Billing directly, or another subscription provider such as RevenueCat, Adapty or Purchasely, make sure that provider's SDK supports Billing 9 and run through purchase, restore and subscription-status flows end to end.

  • If you use other subscription management libraries (RevenueCat, Purchasely, Adapty) and they do not support Play Billing 9: you can pin the Billing Client version to 8 in the following way.

    Add this to your app module's android/app/build.gradle.kts, outside the android { } block:

    configurations.all {
        resolutionStrategy.force("com.android.billingclient:billing:8.3.0")
    }
    

    Or in Groovy (android/app/build.gradle):

    configurations.all {
        resolutionStrategy.force 'com.android.billingclient:billing:8.3.0'
    }
    

    You can confirm which version you end up with via ./gradlew :app:dependencies --configuration releaseRuntimeClasspath (run from your android/ directory) — look for com.android.billingclient:billing:9.1.0 -> 8.3.0. Billing 8 still satisfies Google's August 31, 2026 requirement, so this is a safe interim state, and no Superwall functionality is lost: the SDK works on both 8.x and 9.x.

    Note that a -dontwarn com.android.billingclient.api.QueryPurchaseHistoryParams ProGuard rule is not a fix. It silences the R8 error and lets the build through, but then throws at runtime.

  • Billing Library 9 requires Android 6.0 (API 23). This plugin already requires minSdkVersion 26, so no change is needed on the Flutter side.

Behavior Changes #

  • Android: system back presses are now forwarded into the paywall as a back_button_input message instead of dismissing it directly. Multi-page paywalls navigate back one page, and paywalls with nowhere to go back (root page, single page) close through the standard manual-close path, so single-page paywalls dismiss the same as before. When reroute_back_button is enabled in Paywall settings, the PaywallOptions.onBackPressed callback keeps first refusal before the press is forwarded. Paywalls built on runtimes that predate back_button_input ignore the press until republished.

2.5.0 #

Enhancements #

  • Adds Swift Package Manager (SPM) support for iOS, alongside the existing CocoaPods support. This removes the "plugin does not support Swift Package Manager" warning under Flutter 3.44+ while remaining fully backward compatible with CocoaPods.
  • Updates Android SDK to 2.7.24 View Android SDK release notes.
  • Updates iOS SDK to 4.16.3 View iOS SDK release notes.

2.4.12 #

Enhancements #

  • Updates Android SDK to 2.7.11 View Android SDK release notes.
  • Updates iOS SDK to 4.14.2 View iOS SDK release notes.
  • Adds preloadDeviceOverrides option to PaywallOptions to override shouldPreload per device tier (Android only)
  • Exports PresentationResult, StoreTransaction, TransactionProduct from the public package
  • Fixes PurchaserInfo.storeIdentifiers leaking the internal Pigeon type instead of the public StoreIdentifiers sealed class

2.4.11 #

Enhancements #

  • Updates iOS SDK to 4.14.1 View iOS SDK release notes.
  • Updates Android SDK to 2.7.8 View Android SDK release notes.
  • Adds appstackId integration attribute for Appstack integration support
  • Adds testModeBehavior option to SuperwallOptions to control when the SDK enters test mode (automatic, whenEnabledForUser, never, always)
  • Adds shouldObservePurchases option to SuperwallOptions to observe purchases made outside of Superwall
  • Adds shouldBypassAppTransactionCheck option to SuperwallOptions (iOS only)
  • Adds maxConfigRetryCount option to SuperwallOptions (iOS only)
  • Adds useMockReviews option to SuperwallOptions (Android only)

2.4.10 #

Updates #

  • Updates pigeon to 26.1.5 to support analyzer 9.+.+ versions

2.4.9 #

Enhancements #

2.4.8 #

Enhancements #

Fixes #

  • Fixes an issue where IdentityOptions passed to identify() were not being sent to the native SDK due to a variable shadowing bug.

2.4.7 #

Enhancements #

2.4.6 #

Enhancements #

  • Adds isActive convenience property on the SubscriptionStatus class
  • Adds support for SuperwallOptions.paywalls.onBackPressed callback to react to back button presses on Android

2.4.5 #

Enhancements #

2.4.4 #

Enhancements #

2.4.3 #

Enhancements #

2.4.2 #

Enhancements #

  • Exposes Superwall.shared.overrideProductsByName variable.

2.4.1 #

Enhancements #

  • Updates iOS SDK to 4.7.0 View iOS SDK release notes.
  • Updates Android SDK to 2.5.1 View Android SDK release notes. Note: This contains an update to Play Billing 8.
  • Adds overrideProductsByName to PaywallOptions - allows globally overriding products on any paywall by product name.
  • Adds shouldShowWebPurchaseConfirmationAlert to PaywallOptions - shows localized alert confirming successful web checkout purchases (iOS only).

Fixes #

  • Fixes missing paywall info

2.4.0 #

Enhancements #

2.3.5 #

Fixes #

  • Adds params mapping back to EventInfo for easier forwarding to analytics

2.3.4 #

Enhancements #

Fixes #

  • Fixes issue where shouldShowWebRestorationAlert wasn't getting through to the iOS PaywallOptions.

2.3.3 #

Enhancements #

  • Exposes shouldShowWebRestorationAlert in PaywallOptions.

2.3.2 #

Enhancements #

2.3.1 #

Enhancements #

Fixes #

  • Fixes issue with registerPlacement blocking

2.3.0 #

Enhancements #

  • Exposes ConfirmedAssignments and StoreProduct to superwallkit_flutter.
  • Adds Superwall.shared.getDeviceAttributes(), which returns the device attributes that are used when evaluating audience filters.
  • Updates iOS SDK to 4.4.1 View iOS SDK release notes.
  • Updates Android SDK to 2.1.1 View Android SDK release notes.

Fixes #

  • Fixes issue where SuperwallEventInfo didn't contain all expected variables.
  • Fixes issue when building for app that deploys with a minimum version of iOS 13.

2.2.2 #

Fixes #

  • Fixes issue with paywall presentation handlers not working.

2.2.1 #

Fixes #

  • Fixes issue with iOS side of project not building.

2.2.0 #

Fixes #

  • Fixes missing Event info

Enhancements #

2.2.0-beta.2 #

Enhancements #

2.2.0-beta.1 #

Enhancements #

2.1.0 #

Enhancements #

2.1.0-beta.2 #

Enhancements #

2.1.0-beta.1 #

Enhancements #

  • Reworks the SDK's beneath the surface to rely on Pigeon codegen
  • Improves stability
  • Improved correctness of the SDK

Note: #

  • This could include some potentially breaking changes. If you find some, please open an issue or reach out to the team.

2.0.8 #

Enhancements #

2.0.7 #

Fixes #

  • Fixes issue when accessing presentedByPlacement* properties from a custom placement

2.0.6 #

Enhancements #

  • Adds a subscription stream example in the example app

Fixes #

  • Fixes issue with second subscriber not receiving the SubscriptionStatus broadcast stream
  • Fixes issue with PurchasedPaywallResult not properly deserialising in onDismiss

2.0.5 #

Enhancements #

2.0.4 #

Enhancements #

  • Updates onDismissHandler to now receive a PaywallResult also
  • Updates Android SDK to 2.0.2 View Android SDK release notes
  • handleSuperwallPlacement(SuperwallPlacementInfo eventInfo) has been replaced with handleSuperwallEvent(SuperwallEventtInfo eventInfo)

2.0.3 #

Fixes #

  • Fixes BridgeInstance crashes
  • Adds awaiting on shared instance of BridgeCreator to avoid crashes when plugin is yet to attach

2.0.2 #

2.0.1 #

2.0.0 #

#

  • Adds entitlements to subscriptions, allowing you to set them using:
    • await Superwall.shared.setSubscriptionStatus(status) by passing in one of:
      • SubscriptionStatusActive(entitlements: entitlements))
        • Note: Passing in empty entitlements will set the subscription status to inactive
      • SubscriptionStatusInactive
      • SubscriptionStatusUnknown
  • Subscribing to subscription status updates via stream Superwall.shared.subscriptionStatus
  • SuperwallBuilder which will automatically update the state whenever subscription status changes
  • Superwall.shared.registerEvent has now been replaced with Superwall.shared.registerPlacement
  • handleSuperwallEvent(SuperwallEventInfo eventInfo) has been replaced with handleSuperwallPlacement(SuperwallPlacementInfo placementInfo)
  • PaywallPresentationHandler.onDismiss now has 2 arguments, PaywallInfo and PaywallResult

2.0.0-alpha.1 #

  • Adds entitlements to subscriptions, allowing you to set them using:
  • await Superwall.shared.setSubscriptionStatus(status) by passing in one of:
    • SubscriptionStatusActive(entitlements: entitlements))
      • Note: Passing in empty entitlements will set the subscription status to inactive
    • SubscriptionStatusInactive
    • SubscriptionStatusUnknown
  • Subscribing to subscription status updates via stream Superwall.shared.subscriptionStatus
  • SuperwallBuilder which will automatically update the state whenever subscription status changes
  • Superwall.shared.registerEvent has now been replaced with Superwall.shared.registerPlacement
  • handleSuperwallEvent(SuperwallEventInfo eventInfo) has been replaced with handleSuperwallPlacement(SuperwallPlacementInfo placementInfo)

1.3.11 #

Fixes #

  • Fixes BridgeInstance crashes
  • Adds awaiting on shared instance of BridgeCreator to avoid crashes when plugin is yet to attach

1.3.10 #

Fixes #

  • Fixes an issue on iOS where the plugin could get registered multiple times resulting in a MissingPluginException.

1.3.9 #

Fixes #

  • Fixes a compatibility issue with WorkManager and other isolate-running libraries where the plugin would detach and cause a Missing Activity or BridgeCreator exception

Enhancements #

1.3.8 #

Fixes #

  • Removes unnecessary date comparison from PurchaseController example code.

1.3.7 #

Enhancements #

1.3.6 #

Enhancements #

1.3.5 #

Enhancements #

Fixes #

  • Fixes issue with PaywallInfoBridge and other bridges throwing NPE when reattaching to activities from deep sleep.

1.3.4 #

Enhancements #

  • Adds setLocaleIdentifier(_:) and getLocaleIdentifier().

1.3.3 #

  • Upgrades Android SDK to 1.3.1 View Android SDK release notes
  • This fixes the issue when using Superwall with some SDK's would cause a crash (i.e. Smartlook SDK)

1.3.2 #

  • Updates project linting and formatting to be consistent with the Flutter style
  • Removes rogue logging statements by matching them with the provided Log level
  • Adds passIdentifiersToPlayStore to SuperwallOptions which allows you to pass user identifiers to the Play Store purchases as account identifiers. This is useful for tracking user purchases in the Play Store console.

1.3.1 #

Enhancements #

  • Upgrades Android SDK to 1.3.0 View Android SDK release notes
  • Upgrades iOS SDK to 3.10.1 View iOS SDK release notes
  • Adds confirmAllAssignments method to Superwall which confirms assignments for all placements and returns an array of all confirmed experiment assignments. Note that the assignments may be different when a placement is registered due to changes in user, placement, or device parameters used in audience filters.

1.3.0 #

Enhancements #

  • Upgrades iOS SDK to 3.9.1. View iOS SDK release notes
  • Upgrades Android SDK to 1.2.7 View Android SDK release notes
  • Exposes the SuperwallOption collectAdServicesAttribution for iOS. When true, this collects the AdServices attribute token, which will be process by our backend. Adds adServicesTokenRequest_start, adServicesTokenRequest_complete, and adServicesTokenRequest_fail.
  • Exposes getConfigurationStatus(), which replaces getIsConfigured(). This returns either ConfigurationStatusPending, ConfigurationStatusConfigured, or ConfigurationStatusFailed.

1.2.2 #

Enhancements #

Fixes #

  • Reapply the single bridge instance limit to fix issues with setDelegate where plugins with multiple isolates are used
  • Fixes stateful bridges by applying new state when invoking create, resolving issues seen in #23

1.2.1 #

Enhancements #

1.2.0 #

Enhancements #

Fixes #

  • Updates compileSDKVersion to 34 fixing build issues on Android.

1.1.9 #

Enhancements #

Fixes #

  • Bumps minimum Kotlin version to 1.8.0 and Android Gradle Plugin to 8.1.0 to be able to be compatible with the latest Android SDK. This was necessary for important bug fixes.
  • SW-2868: Fixes transaction issues caused by hot restart.

1.1.8 #

Enhancements #

1.1.7 #

Enhancements #

1.1.6 #

Enhancements #

1.1.5 #

Enhancements #

1.1.4 #

Enhancements #

Fixes #

  • Updates the UUID framework dependency to the latest version to prevent conflicts.

1.1.3 #

Fixes #

  • Fixes crash that occurred if an Android foreground service was started and the app was relaunched from a cold start.

1.1.2 #

Enhancements #

1.1.1 #

Fixes #

  • Fixes LocalNotification issue that was trying to initialise an int with a double.

1.1.0 #

Enhancements #

1.0.1 #

Fixes #

  • Fixes issue with invalid imports due to a breaking change on Android.

1.0.0 #

Enhancements #

26
likes
130
points
7.51k
downloads

Documentation

API reference

Publisher

verified publishersuperwall.com

Weekly Downloads

Remotely configure every aspect of your paywall and double your revenue.

Homepage

License

MIT (license)

Dependencies

flutter, meta, pigeon, plugin_platform_interface, uuid, yaml

More

Packages that depend on superwallkit_flutter

Packages that implement superwallkit_flutter