superwallkit_flutter 2.6.0
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 fetchStoreProducts (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 nativePurchaseResult. Purchase controller and observer mode behavior matches the native SDKs. - Adds Android-only
Superwall.shared.queryInAppPurchases(), returning owned one-time purchases in thePURCHASEDstate with their product IDs and purchase tokens, so the benefit can be granted before callingconsume().
⚠️ 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-argenablePendingPurchases()), it will no longer compile once it picks up Billing 9 through this SDK. Migrate those call sites to theProductDetailsAPIs 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 theandroid { }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 yourandroid/directory) — look forcom.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.QueryPurchaseHistoryParamsProGuard 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_inputmessage 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. Whenreroute_back_buttonis enabled in Paywall settings, thePaywallOptions.onBackPressedcallback keeps first refusal before the press is forwarded. Paywalls built on runtimes that predateback_button_inputignore 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
preloadDeviceOverridesoption toPaywallOptionsto overrideshouldPreloadper device tier (Android only) - Exports
PresentationResult,StoreTransaction,TransactionProductfrom the public package - Fixes
PurchaserInfo.storeIdentifiersleaking the internal Pigeon type instead of the publicStoreIdentifierssealed 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
appstackIdintegration attribute for Appstack integration support - Adds
testModeBehavioroption toSuperwallOptionsto control when the SDK enters test mode (automatic, whenEnabledForUser, never, always) - Adds
shouldObservePurchasesoption toSuperwallOptionsto observe purchases made outside of Superwall - Adds
shouldBypassAppTransactionCheckoption toSuperwallOptions(iOS only) - Adds
maxConfigRetryCountoption toSuperwallOptions(iOS only) - Adds
useMockReviewsoption toSuperwallOptions(Android only)
2.4.9 #
Enhancements #
- Updates iOS SDK to 4.13.0 View iOS SDK release notes.
- Updates Android SDK to 2.7.1 View Android SDK release notes.
2.4.8 #
Enhancements #
- Adds
onCustomCallbackmethod toPaywallPresentationHandlerthat allows invoking custom callbacks and passing data from and to the paywall - Updates iOS SDK to 4.12.10 View iOS SDK release notes.
- Updates Android SDK to 2.7.0 View Android SDK release notes.
Fixes #
- Fixes an issue where
IdentityOptionspassed toidentify()were not being sent to the native SDK due to a variable shadowing bug.
2.4.7 #
Enhancements #
- Updates iOS SDK to 4.12.7 View iOS SDK release notes.
- Updates Android SDK to 2.6.8 View Android SDK release notes.
2.4.6 #
Enhancements #
- Adds
isActiveconvenience property on theSubscriptionStatusclass - Adds support for
SuperwallOptions.paywalls.onBackPressedcallback to react to back button presses on Android
2.4.5 #
Enhancements #
- Updates iOS SDK to 4.10.6 View iOS SDK release notes.
- Updates Android SDK to 2.6.5 View Android SDK release notes.
2.4.4 #
Enhancements #
- Adds
Superwall.shared.consume(purchaseToken)method to allow consuming inapp purchases - Updates Android SDK to 2.6.2 View Android SDK release notes.
2.4.3 #
Enhancements #
- Updates Android SDK to 2.6.1 View Android SDK release notes.
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
overrideProductsByNametoPaywallOptions- allows globally overriding products on any paywall by product name. - Adds
shouldShowWebPurchaseConfirmationAlerttoPaywallOptions- shows localized alert confirming successful web checkout purchases (iOS only).
Fixes #
- Fixes missing paywall info
2.4.0 #
Enhancements #
- Updates Android SDK to 2.3.1 View Android SDK release notes.
2.3.4 #
Enhancements #
- Updates iOS SDK to 4.5.2 View iOS SDK release notes.
- Updates Android SDK to 2.2.3 View Android SDK release notes.
Fixes #
- Fixes issue where
shouldShowWebRestorationAlertwasn't getting through to the iOSPaywallOptions.
2.3.2 #
Enhancements #
- Expose
getPresentationResultmethod - Updates Android SDK to 2.2.2 View Android SDK release notes.
2.3.1 #
Enhancements #
- Updates Android SDK to 2.1.2 View Android SDK release notes.
Fixes #
- Fixes issue with
registerPlacementblocking
2.3.0 #
Enhancements #
- Exposes
ConfirmedAssignmentsandStoreProducttosuperwallkit_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
SuperwallEventInfodidn't contain all expected variables. - Fixes issue when building for app that deploys with a minimum version of iOS 13.
2.2.0 #
Fixes #
- Fixes missing Event info
Enhancements #
- Updates iOS SDK to 4.3.11 View iOS SDK release notes
- Updates Android SDK to 2.1.0 View Android SDK release notes
2.2.0-beta.2 #
Enhancements #
- Updates iOS SDK to 4.3.8 View iOS SDK release notes
2.2.0-beta.1 #
Enhancements #
-
Adds support for web checkout.
-
Updates kotlin version of the underlying Android SDK to 2.0.21
-
Updates iOS SDK to 4.3.5 View iOS SDK release notes
-
Updates iOS SDK to 2.1.0-beta.2 View iOS SDK release notes
2.1.0 #
Enhancements #
- Updates Android SDK to 2.0.8 View Android SDK release notes
- Updates iOS SDK to 4.3.0 View iOS SDK release notes
2.1.0-beta.2 #
Enhancements #
- Adds
restorePurchasesfunction - Updates Android SDK to 2.0.6 View Android SDK release notes
- Updates iOS SDK to 4.2.0 View iOS SDK release notes
2.1.0-beta.1 #
2.0.8 #
Enhancements #
- Updates iOS SDK to 4.0.6 View iOS SDK release notes
- Updates Android SDK to 2.0.5 View Android SDK release notes
2.0.6 #
2.0.5 #
Enhancements #
- Update
SuperwallPlacementtoSuperwallEvent - Update
PlacementTypetoEventType - Updates Android SDK to 2.0.3 View Android SDK release notes
- Updates iOS SDK to 4.0.3 View iOS SDK release notes
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 withhandleSuperwallEvent(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 #
- Updates iOS SDK to 1.5.4 View iOS SDK release notes
- Updates Android SDK to 2.0.1 View Android SDK release notes
2.0.1 #
- Upgrades iOS SDK to 4.0.0 View iOS SDK release notes
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
SubscriptionStatusInactiveSubscriptionStatusUnknown
- Subscribing to subscription status updates via stream
Superwall.shared.subscriptionStatus SuperwallBuilderwhich will automatically update the state whenever subscription status changesSuperwall.shared.registerEventhas now been replaced withSuperwall.shared.registerPlacementhandleSuperwallEvent(SuperwallEventInfo eventInfo)has been replaced withhandleSuperwallPlacement(SuperwallPlacementInfo placementInfo)PaywallPresentationHandler.onDismissnow has 2 arguments,PaywallInfoandPaywallResult
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
SubscriptionStatusInactiveSubscriptionStatusUnknown
- Subscribing to subscription status updates via stream
Superwall.shared.subscriptionStatus SuperwallBuilderwhich will automatically update the state whenever subscription status changesSuperwall.shared.registerEventhas now been replaced withSuperwall.shared.registerPlacementhandleSuperwallEvent(SuperwallEventInfo eventInfo)has been replaced withhandleSuperwallPlacement(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
WorkManagerand other isolate-running libraries where the plugin would detach and cause aMissing ActivityorBridgeCreatorexception
Enhancements #
- Updates Android SDK to 1.5.4 View Android SDK release notes
1.3.7 #
Enhancements #
- Upgrades iOS SDK to 3.12.1 View iOS SDK release notes
1.3.6 #
Enhancements #
- Updates Android SDK to 1.5.1 View Android SDK release notes
1.3.5 #
Enhancements #
- Upgrades iOS SDK to 3.12.0 View iOS SDK release notes
- Updates Android SDK to 1.5.0 View Android SDK release notes
Fixes #
- Fixes issue with
PaywallInfoBridgeand other bridges throwing NPE when reattaching to activities from deep sleep.
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
passIdentifiersToPlayStoretoSuperwallOptionswhich 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
confirmAllAssignmentsmethod toSuperwallwhich 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
SuperwallOptioncollectAdServicesAttributionfor iOS. Whentrue, this collects the AdServices attribute token, which will be process by our backend. AddsadServicesTokenRequest_start,adServicesTokenRequest_complete, andadServicesTokenRequest_fail. - Exposes
getConfigurationStatus(), which replacesgetIsConfigured(). This returns eitherConfigurationStatusPending,ConfigurationStatusConfigured, orConfigurationStatusFailed.
1.2.2 #
Enhancements #
- Upgrades Android SDK to 1.2.4 View Android SDK release notes
Fixes #
- Reapply the single bridge instance limit to fix issues with
setDelegatewhere 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 #
- Upgrades Android SDK to 1.2.3 View Android SDK release notes
- Upgrades iOS SDK to 3.7.2. View iOS SDK release notes
1.2.0 #
Enhancements #
- Upgrades Android SDK to 1.2.0 View Android SDK release notes
Fixes #
- Updates
compileSDKVersionto 34 fixing build issues on Android.
1.1.9 #
Enhancements #
- Upgrades Android SDK to 1.1.8. View Android SDK release notes
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 #
- Upgrades iOS SDK to 3.6.6. View iOS SDK release notes
- Upgrades Android SDK to 1.1.7. View Android SDK release notes
1.1.7 #
Enhancements #
- Upgrades iOS SDK to 3.6.5. View iOS SDK release notes
1.1.6 #
Enhancements #
- Upgrades Android SDK to 1.1.6. View Android SDK release notes
1.1.5 #
Enhancements #
- Upgrades Android SDK to 1.1.5. View Android SDK release notes
1.1.4 #
Enhancements #
- Upgrades Android SDK to 1.1.4. View Android SDK release notes
- Upgrades iOS SDK to 3.6.2. View iOS SDK release notes
- Adds
identityAliasSuperwallEvent.
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 #
- Upgrades Android SDK to 1.1.2. View Android SDK release notes
- Upgrades iOS SDK to 3.6.1. View iOS SDK release notes
1.1.0 #
Enhancements #
- Upgrades Android SDK to 1.1.1. View Android SDK release notes
- Upgrades iOS SDK to 3.6.0. View iOS SDK release notes
1.0.0 #
Enhancements #
- Upgrades Android SDK to 1.0.0. View Android SDK release notes
- Upgrades iOS SDK to 3.5.0. View iOS SDK release notes