adapty_flutter 3.11.3
adapty_flutter: ^3.11.3 copied to clipboard
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.
3.11.3 #
- [Android] Fixed onboarding dismiss issue
3.11.2 #
- Support for Adapty Android SDK 3.11.1
- Various bug fixes and improvements
3.11.1 #
- [Android] Fixed
AdaptyUIOnboardingPlatformViewevents
3.11.0 #
- Onboarding Builder now supports localizations. Read More.
3.10.0 #
- 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.0 #
- Added support for the User Acquisition feature. Read more.
- Minimum required Xcode version is now 16.0.
- Various bug fixes and improvements.
3.8.4 #
- 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
3.8.3 #
- [Android] Fixed AdaptyUI rendering issues
3.8.2 #
- [Android] Fixed AdaptyUI rendering issues
3.8.1 #
- [iOS] Fixed dependency issue
3.8.0 #
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.1 #
- [Android] Fix AdaptyUI video support
3.6.0 #
- 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.
3.4.1 #
- Fixed support for Xcode 16.3
3.4.0 #
- Added
audienceNameproperty toAdaptyPaywallstruct. - Added
updateCollectingRefundDataConsentandupdateRefundPreferencemethods. Read More. - Unified
reportTransactionbehaviour for iOS and Android.
3.3.2 #
- 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
3.3.1 #
- [Android] Fix AdaptyUI Close button
3.3.0 #
⚠️ 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
3.2.5 #
- [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.4 #
- [iOS] Added support for Xcode 16.2
- [iOS] Fixed support for Xcode 15.x
3.2.3 #
- 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.2 #
- added missing models exports
3.2.1 #
AdaptyErrorCodechangefinaltoconst- [Android] Plugin fix
3.2.0 #
🎉 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.4 #
- [Android] Add parameters to
activatemethod
2.10.3 #
- Support for Flutter 3.22+
2.10.2 #
- Support for Flutter 3.22+
2.10.1 #
- Support for Adapty iOS SDK 2.10.3
- Support for Adapty Android SDK 2.10.4
2.10.0 #
⚠️ 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.3 #
- [Android] Fixed the incorrect format of some analytics events in rare cases.
2.9.2 #
- Added support for AdaptyUI 2.1.x
- [iOS] Fixed an issue with wrong device name in some cases on MacOS.
2.9.1 #
- [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.0 #
⚠️ 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.1 #
- [Android] fixes for AdaptyUI library
2.7.0 #
- [iOS] Update Adapty-iOS dependency to 2.7.0
- [Android] Update Adapty-Android dependency to 2.7.0
2.6.2 #
- [Android] Updated retry logic according to new PBL error.
2.6.1 #
- [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.0 #
- [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.4 #
- Added
hasViewConfigurationforAdaptyPaywallobject
2.4.3 #
- [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.2 #
- Redesigned analytics event system
- Added an option to activate usage logs
isOneTimeproperty ofAdaptyProfile.NonSubscriptionwas deprecated, useisConsumableinstead
2.4.1 #
- [Android] fixed subscription change functionality
2.4.0 #
- 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.1 #
- [Android] updated dependency to 2.3.2
2.3.0 #
- Added an option to specify the paywall locale.
- [iOS] updated dependency to 2.3.3
- [Android] updated dependency to 2.3.1
2.2.5 #
- [iOS] Fixed a bug that caused a new anonymous user to be created when migrating from earlier versions of the SDK.
2.2.4 #
- [iOS] Fixed
didUpdateProfileStreamserialization bug.
2.2.3 #
- Added integration with Firebase and Google Analytics. Read more.
- [Android] Fixed a bug when products returned in a wrong order
2.2.2 #
- [iOS] Fixed a bug when some additional purchase parameters were not sent in Observer Mode.
2.2.1 #
- [Android] fixed parsing error for free trial fields.
- Updated errors documentation.
2.2.0 #
Meet the second version of the Adapty SDK 🎉
See our What's new in Adapty Flutter SDK 2.0 doc for API updates. Adapty 2.0 introduces the following updates:
Breaking changes: #
- Adapty now is singleton. Use
Adapty().someMethodCall()instead ofAdapty.someMethodCall() - User-initiated purchases are now automatically processed by the system, so we have removed the
deferredPurchasesStreamandmakeDeferredPurchase()method. - We are no longer support Visual Paywalls and Promo Campaigns features, so you should remove the calls to the corresponding methods, if there were any
- Instead of getting all paywalls in one request with the
.getPaywalls(), it must be done separately for each paywall using.getPaywall(id:) - Products are no longer part of the paywall, they must be loaded separately with
.getPaywallProducts(paywall:) - It is no longer possible to use products outside of the paywall. If you need to handle a product, create a separate paywall for it (or for multiple products).
introductoryOfferEligibility– instead of true/false we give a more extended list of options- The
AdaptyProfileParametersBuilderis redesigned:- Methods, related to custom attributes now can throw an exception, if key or value didn't pass validation
- Added an option to pass null values to builder functions for more convenience
- You can now remove customAttributes with the function
.removeCustomAttribute("key") - You have to use
.build()method and pass resultingAdaptyProfileParametersobject to.updateProfilemethod
.setAnalyticsDisabled()method has been eliminated. Use the.setAnalyticsDisabledmethod ofAdaptyProfileParametersBuilder.- The
forceUpdateparameter was removed from thegetPaywallmethod. The result will always be up to date if it is possible to retrieve data from the server
Renames #
PurchaserInforenamed toAdaptyProfile.getPurchaserInforenamed to.getProfiledidReceivePurchaserInfoStreamwas also renamed to.didUpdateProfileStreamdeveloperIdfield ofAdaptyPaywallwas renamed toidAdaptyAttributionNetworkrenamed toAdaptyAttributionSource
Fixes #
- Fixed wrong behavior of fallback paywalls in some cases
.setFallbackPaywalls()method now does not return errors related to StoreKit product retrieval- Incorrect user segmentation in some rare cases
Additions: #
- Ability to log onboard screens with
.logShowOnboarding(). Read more - Added ability to get previously set
customAttributes, now it is part ofAdaptyProfile
Under the hood: #
- The server interaction layer was rewritten from scratch.
- The initial request sequence has been optimized and simplified
- Reduced the number of API calls made by SDK. Some of the request are now faster and transfer less data.
- Independent requests can be executed simultaneously
- StoreKit interaction layer was refactored
Full documentation can be found in here.
1.0.14 #
- Fixed type cast in the
makeDeferredPurchasemethod
1.0.13 #
- Upgraded with iOS SDK version 1.17.7 and Android SDK version 1.11.0
1.0.12 #
- [Android] fixed localized properties
1.0.11 #
- Support for Flutter 3.0
1.0.10 #
- Ability to use Adapty-Info.plist for storing initialization parameters
1.0.8 #
- Updated
PurchaserInfoModelpropertyprofileIdaccess level to public
1.0.7 #
- [iOS] Added support for disabling IDFA collection
- [Android] Improved handling clicks on push notifications
1.0.6 #
- [iOS] Added support for AdServices attribution tracking
- [Android] internal sdk improvements
1.0.5 #
- [Android] added logLevel ALL, logLevel VERBOSE doesn't include analytical logs, but ALL does
- changed example for updating custom attribution
- various improvements
1.0.4 #
- added toString for
AdaptyAccessLevelInfo,AdaptySubscriptionInfo,AdaptyNonSubscriptionInfomodels
1.0.3 #
- Added new log level "all"
- Fallback paywalls offline work
- [iOS] Added optional
offerIdparameter tomakePurchasemethod
1.0.2 #
- [iOS] Updated AdaptyProfileParameterBuilder to work with ATTrackingManager.AuthorizationStatus
- Removed usage of dart ffi
- Made receipt validation api method private
1.0.1 #
- [Android] Added support for fallback paywalls
1.0.0 #
- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
1.0.0-nullsafety.0 #
- Enable null safety
- Require Dart 2.12 or greater.
0.3.6 #
- [Android] fixed localizedTitle in product
0.3.5 #
- [iOS] Added
isFamilyShareableproperty to product for iOS 14+. - [iOS] Added
.presentCodeRedemptionSheet()to public SDK API
0.3.4 #
- [Android] Small fix in requests
0.3.3 #
- [iOS] Added retry for
createProfilerequest in case of poor connection or if server is down. - [Android] Added gzip support
- Removed unnecessary event channel invocations for
.getPaywalls()and.getPurchaserInfo()methods
0.3.2 #
- Fixed
.getPaywalls()callback without an internet connection (Android only)
0.3.1 #
- Added
.setFacebookAnonymousIdmethod toAdaptyProfileParameterBuilder - Added
freeTrialPeriodproperty ofAdaptyProductmodel (Android only)
0.3.0 #
- Added ability to connect observer mode purchase with a paywall it was made from using
.setTransactionVariationIdmethod - Added ability to opt-out from external analytics services using
.setExternalAnalyticsEnabledmethod - Added public
abTestNameandnameproperties toAdaptyPaywalland to nested products array. - Paywall views must be reported using
.logShowPaywall(paywall)method from now on, otherwise, views will not be collected.
0.2.0 #
- Plugin initialization scheme changed to prevent missing transaction on iOS.
- Added
.logShowPaywall(paywall)to manually record paywall show event. - Added
apnsTokenStringto public properties. - Removed
statefrom.getPurchaserInfo()callback. AddedforceUpdateas an optional request parameter. - Removed
statefrom.getPaywalls()callback. AddedforceUpdateas an optional request parameter.
0.1.2 #
- empty string custom payload fixed
updateAttribution()fixed on AndroidgetPurchaserInfo()stability improvedverbose logLevelremoved as default
0.1.1 #
customPayloadStringadded to Paywall- birthday fix in
updateProfile
0.1.0 #
- Initial release