appsflyer_sdk 7.0.2+1-rc1
appsflyer_sdk: ^7.0.2+1-rc1 copied to clipboard
A Flutter plugin for AppsFlyer SDK. Supports iOS and Android.
Versions #
7.0.2+1 #
- Added
setImeiData,setOaidData, andsetAndroidIdData(Android only)
7.0.2 #
Migration to AppsFlyer SDK 7. This is a major release with intentional breaking changes. See doc/migration-guide.md for removed APIs, renames, lifecycle changes, and upgrade instructions.
- Flutter plugin version 7.0.2
- Minimum Flutter version 3.35.0
- Minimum Dart version 3.9.0 (and earlier than Dart 4.0.0)
- Android build toolchain, aligned with the AppsFlyer Android SDK: Kotlin Gradle Plugin 2.0.21, Android Gradle Plugin 8.9.1, Gradle 8.11.1, JDK 17
- Android AppsFlyer SDK 7.0.1
- iOS AppsFlyer SDK 7.0.2
- Android Purchase Connector 2.2.0
- iOS Purchase Connector 7.0.2
- iOS minimum deployment target 13.0
- Android minimum API level 21
- Documentation remains organized under
doc/, with the complete upgrade catalog in doc/migration-guide.md.
BREAKING
- Raised the minimum Flutter version to 3.35.0 (Dart 3.9.0) and aligned the
Android build toolchain with the AppsFlyer Android SDK: Kotlin Gradle Plugin
2.0.21, Android Gradle Plugin 8.9.1, Gradle 8.11.1, JDK 17. The
Android dependencies are compiled with Kotlin 2.0, so an older Kotlin Gradle
Plugin cannot read their metadata; the previously advertised floor of Flutter
3.24templates Kotlin1.7.10and could not build the plugin at all. The build now fails at configuration time with a message naming the version found and the file to change, because the Kotlin Gradle Plugin version is declared by the app and does not change when Flutter is upgraded. - Replaced
AppsflyerSdk(options)andAppsFlyerOptionswith the sharedAppsFlyerSdk.instancesingleton and explicit configuration methods. - Replaced
initSdk(...)withinit(devKey:, appId:).appIdis required on iOS, optional on Android, and is not sent to the Android SDK. - Replaced
startSDK(...)withawait start(). Initialization no longer sends a session. CallregisterSessionReadyListener(onReady)and callstart()once for each readiness event. - Replaced callback registration flags with explicit listener registration that
takes the callback as an argument:
registerConversionListener( onConversionDataSuccess:, onConversionDataFail:),registerDeepLinkListener(onDeepLinking:), andregisterSessionReadyListener(onReady). Each callback is named after the event it handles, so the same handler names apply across the AppsFlyer plugins. Every callback exceptonReadyis optional — pass only the ones you need. The plugin holds one callback per event and replaces it on re-registration, matching the native SDKs; no event stream is exposed, so a single native event cannot fan out to several handlers in the app. Registering and unregistering are all-or-nothing: when the native call fails, the Dart callbacks are left exactly as they were. registerDeepLinkListener(onDeepLinking:)must be called beforeinit(). Android decides once per install, whileinit()processes the launch intent, whether to send the deferred deep-link resolution request, and skips it when no listener is registered yet. The other listeners are still registered afterinit().- Native and plugin failures from operations that await a result are surfaced as
AppsFlyerException(int? code,String message). Non-numeric platform codes leavecodeasnull.MissingPluginExceptionis not converted. Failures from fire-and-forget calls are not reported. start,logEvent, andgenerateInviteLinkexposeawaitResponsewhere the native SDK supports waiting for a completion callback. It defaults tofalseforstartandlogEvent, and totruefor invite-link generation.validateAndLogInAppPurchasehas no such flag: both platforms always wait for the validation result.- Removed OAOA callbacks and registration. Use Unified Deep Linking.
- Replaced
performOnDeepLinking()withperformDeepLinking(url, {shouldTriggerSession}). - Replaced legacy V1 Android/iOS purchase validation and
validateAndLogInAppPurchaseV2(...)withvalidateAndLogInAppPurchase(AFPurchaseDetails, ...). UseAFAndroidPurchaseDetailswith a Play purchase token orAFIOSPurchaseDetailswith an App Store transaction ID. - Replaced the cross-platform
sendPushNotificationData(Map)shape with platform-specific AndroidsendPushNotificationData(...)and iOShandlePushNotification(pushPayload)APIs. - Replaced
setConsentDataV2(...)and theAppsFlyerConsentwrapper with the flatsetConsentData(...)API and its four SDK 7 consent fields. - Renamed platform APIs to match the final SDK 7 surface, including
enableDebug,setDisableSKAdNetwork,setDisableAppleAdsAttribution,setDisableIDFVCollection,setUseReceiptValidationSandbox, andsetUseUninstallSandbox. setUserFbLoginIdnow accepts anint; mediation values useAFMediationNetwork; invite-link fields usereferrerCustomerIdanduserParams.- Removed SDK 6 APIs that no longer exist in SDK 7 or are not exposed by the
plugin, including
onAppOpenAttribution,setUserEmails,EmailCryptType, raw IMEI and Android ID setters, V1 purchase validation,setPushNotification,enableUninstallTracking,waitForCustomerUserId, andsetCustomerIdAndLogSession. - Runtime configuration setters must be re-applied on every cold start before
start(). - Every platform-only method now throws
AppsFlyerExceptionwhen called outside its supported platform, instead of some logging a warning and returning a safe default while others threw. The plugin no longer keeps its own table of which platform implements what — calls are forwarded and the native layer answers, so the surface stays correct as the native SDKs change. Code that relied on an off-platform call being a silent no-op must guard it withPlatform.isAndroid/Platform.isIOSor catch the exception. The exceptioncodecomes from the native layer, which reports404for an unimplemented method on both platforms. getHostName()andgetHostPrefix()now return non-nullableFuture<String>instead ofFuture<String?>; unexpected native null replies throwAppsFlyerExceptioninstead of surfacing asnull. Both are available on Android and iOS — see Added below.- Bool getters such as
isSessionReady,isStopped, andisPreInstalledAppno longer coerce an unexpected nativenulltofalse; they throwAppsFlyerExceptioninstead. setSharingFilterForPartners(null)andsetSharingFilterForPartners([])are forwarded to the native layer instead of being ignored in Dart, and clear the filter on Android and iOS alike.setConsentDataaccepts nullable consent fields: onlyisUserSubjectToGDPRis required; the three consent booleans are optional and may be omitted ornullfor non-GDPR users, matching nativeAppsFlyerConsent.- Added Android-only
collectDataFromLauncherActivity(), which collects the open/web referrer from the launcher activity's intent. Call it beforestart(). It requires an attached activity and otherwise fails withAppsFlyerException(code422). setInstallId()requiresAppsFlyerAllowCustomInstallId=YESin iOSInfo.plistand must be called beforeinit()on iOS. Android requiresAPPSFLYER_ALLOW_CUSTOM_INSTALL_ID=trueinAndroidManifest.xmland the call must followinit().- Android Purchase Connector
2.2.0requires Google Play Billing Library8.x. The Flutter plugin does not add Billing Library; the app or its IAP plugin must provide it. iOS Purchase Connector requires CocoaPods, while Core-only apps can use Swift Package Manager. - Remove legacy
SingleInstallBroadcastReceiverandMultipleInstallBroadcastReceivermanifest entries. The plugin already includes Google Play Install Referrer2.2. - Removed the Core CocoaPods Objective-C public headers
(
AppsflyerSdkPlugin.h,AppsFlyerAttribution.h,AppsFlyerStreamHandler.h,FlutterAppDelegate+AppsFlyerStreamHandler.h). The iOS bridge is Swift-only; host apps that imported those headers must rely on automatic plugin registration or import<appsflyer_sdk/appsflyer_sdk-Swift.h>instead. See migration guide — iOS: Objective-C public headers removed.
See the v6 → v7 migration guide for the complete replacement table.
Added
- Added
AppsFlyerSdk.instance,init(...),registerSessionReadyListener(onReady),unregisterSessionReadyListener(),isSessionReady(), andstart()for the SDK 7 lifecycle. - Added the cross-platform
enableDebug(bool)toggle and Android-onlysetLogLevel(AFLogLevel). - Added typed event callbacks (
OnConversionDataSuccess,OnConversionDataFailure,OnDeepLinkReceived,OnSessionReady) andAppsFlyerException. - Added hashed-PII setters
setUserEmail,setUserPhone,setUserFirstName, andsetUserLastName, plus integersetUserFbLoginIdandclearUserPii. - Added
performDeepLinking,setDeepLinkTimeout,appendParametersToDeepLinkingURL, and iOS-onlysetFacebookDeferredAppLink. - Added the
AFPurchaseDetailsinterface with dedicatedAFAndroidPurchaseDetailsandAFIOSPurchaseDetailsimplementations. - Added Android-only
logSession,setPreinstallAttribution,setAppId,isPreInstalledApp,getAttributionId,unregisterDeepLinkListener, andunregisterConversionListenerAPIs. On Android,unregisterDeepLinkListenerdoes not reliably stop subsequent deep-link events; do not depend on it as an effective unsubscribe. - Added
isStopped,getHostName, andgetHostPrefixon both platforms. On iOS,getHostNameandgetHostPrefixreturn an empty string untilsetHostis called. - Added iOS-only
setDisableAppleAdsAttribution,setDisableIDFVCollection,setShouldCollectDeviceName, andsetUseUninstallSandboxAPIs. - Added
logInvite,logLocation,setInstallId, and awaitablegenerateInviteLinksupport.
Fixed
- iOS Purchase Connector: a validation payload the native SDK reports with a
value JSON cannot represent no longer terminates the app. The serialization
helper behind
didReceivePurchaseRevenueValidationInfocalledJSONSerialization.data(withJSONObject:)undertry?, which does not catch theNSInvalidArgumentExceptionthat call raises, so anNSDate, anNSDataor a non-Stringkey in the delegate's untyped dictionary aborted the process. The helper now checksisValidJSONObjectfirst and returnsnil, which surfaces as a reported parse failure — the callback fires with no data and a log line — instead of a crash. Only affects apps that opted into the Purchase Connector. enableDebugnow controls the plugin's own diagnostics as well as native SDK logging. The plugin printed throughdebugPrint, which Flutter does not compile out of release builds, so those lines reached production logs whatever the app had passed toenableDebug. Release builds are quiet by default and print again afterenableDebug(true); debug builds always print.- Calling the SDK from a background isolate — a push handler, a
workmanagertask,compute()— now throws a catchableAppsFlyerExceptionnaming the cause. Platform channels are bound to the main isolate, and the underlyingStateErrorescaped through the event stream's subscribe callback rather than the returnedFuture, so notry/catcharound the call could intercept it and the background isolate terminated mid-task.AppsFlyerSdk.instanceis also a per-isolate singleton, so a background isolate never sees the instance you configured. See doc/getting-started.md. - Native events that fail to parse are logged by error type only. The log line
previously interpolated the error, and
FormatException.toString()appends an excerpt of the string it could not parse, so a truncated or malformed event put raw attribution data — click and deep-link identifiers among it — into the host app's release log. Stream errors are logged the same way, naming the platform error code but not the message or details. - Purchase Connector: a validation payload that omitted an optional field was silently dropped — the generated
fromJsoncasts were non-nullable, and the resulting error was raised inside a platform-message handler, so neitheronResponsenoronFailurefired and the app could not catch it. BREAKING: every field ofProductPurchase,SubscriptionPurchaseand the types it nests,ValidationFailureData,JVMThrowableandIosErroris now nullable, matching the Google Play Developer API, which documentspurchaseToken,productId,quantity,purchaseTypeand the obfuscated identifiers as conditionally present and omits any field left at its default value.successand theresultmaps stay non-nullable. A payload that still cannot be parsed is reported throughonFailurewith a message naming the callback and the error type — never the payload, which carries purchase and account identifiers. See doc/migration-guide.md. - Purchase Connector: removed stray
[AppsFlyer_PC_Debug]printlogging that shipped in release builds; the callback handler now accepts both JSON-string and already-decodedMappayloads and logs (instead of throwing) on an unrecognized callback name. - Purchase Connector (Android): subscription and in-app validation-result listeners (
setSubscriptionValidationResultListener/setInAppValidationResultListener) never fired — the Dart callback-name constants used a#separator while the native side invokes the channel with:, so the handler'sswitchnever matched. Aligned the Dart constants to:, so these result listeners now deliver. - Android: native events emitted while no Flutter engine was attached were
lost. The native SDK keeps the listener registered by a detached engine
(
subscribeForDeepLinkandregisterConversionListeneroverwrite a single reference, and deep links have no unsubscribe API), so a deep link or conversion-data callback arriving after the Activity was destroyed — for example a link tapped after leaving the app with the back button — was written into the buffer of a plugin instance Dart could no longer reach. Buffering and replay moved to a process-scoped relay, so those events are delivered to the next subscriber in the order they were published. - Optional Android Purchase Connector state is cleared when the Flutter engine detaches.
- Corrected iOS ad-mediation identifiers for custom and direct monetization.
- Updated documentation and examples for the final SDK 7 API.
6.18.0 #
- Updated Android SDK from 6.17.6 to 6.18.0
- Updated iOS SDK from 6.17.9 to 6.18.0
- Updated iOS Purchase Connector from 6.17.9 to 6.18.0
- Fixed Android warm-app deep link consumption race so
DeepLinkListenerfires reliably when the app is resumed from aVIEWintent (forward new intents toAppsFlyerLibfrom the plugin'sonNewIntentListenerbefore the SDK'sonResumeauto-handler marks themaf_consumed) - Added Swift Package Manager (SPM) support for the Core iOS integration (
ios/appsflyer_sdk/Package.swift), alongside continued full CocoaPods support — no behavior change for existing CocoaPods consumers. Purchase Connector remains CocoaPods-only for now, pending resolution of an upstream Flutter limitation (flutter/flutter#161182) that blocks conditionally-compiled plugin features under SPM.
6.17.9 #
- Added UIScene lifecycle support for iOS deep linking (Flutter 3.41+ compatibility)
- Adopted
FlutterSceneLifeCycleDelegatewith compile-time guard for backward compatibility - Added
scene:openURLContexts:for warm-start URI-scheme deep links - Added
scene:willConnectToSession:options:for cold-start URI-scheme and Universal Links - Added
scene:continueUserActivity:for Universal Links via UIScene
- Adopted
- Fixed
getViewControllerto useUIWindowScenelookup on iOS 13+ (replaces deprecatedUIApplication.delegate.window) - Updated iOS SDK from 6.17.8 to 6.17.9
- Updated iOS Purchase Connector from 6.17.8 to 6.17.9
6.17.8 #
- Updated Android SDK from 6.17.4 to 6.17.5
- Updated iOS SDK from 6.17.7 to 6.17.8
- Updated iOS Purchase Connector from 6.17.7 to 6.17.8
- Deprecated
validateAndLogInAppAndroidPurchase(V1) - usevalidateAndLogInAppPurchaseV2instead - Deprecated
validateAndLogInAppIosPurchase(V1) - usevalidateAndLogInAppPurchaseV2instead - Enhanced iOS error handling for
validateAndLogInAppPurchaseV2with comprehensive NSError parsing (code, domain, userInfo) - Documentation Updates:
- Removed "Beta" label from
validateAndLogInAppPurchaseV2API - Marked V1 purchase validation APIs as Deprecated
- Added comprehensive
PlatformExceptionerror handling examples for V2 API - Added iOS token format explanation for uninstall measurement
- Added cross-platform Firebase Messaging example for uninstall tokens
- Removed "Beta" label from
6.17.7+1 #
- Update Android SDK version to 6.17.4
6.17.7 #
- Updated to AppsFlyer SDK v6.17.7 for iOS and Flutter plugin version
- Android AppsFlyer SDK remains at v6.17.3
- iOS AppsFlyer SDK upgraded to v6.17.7
- Android Purchase Connector module updated (to support Google Billing Library 8)
- Code cleanups
- Documentation Updates:
- Enhanced push notification measurement documentation with clear separation between traditional
afobject approach and OneLink URL approach - Added comprehensive iOS-specific requirements for OneLink push notification integration
- Clarified the need to call
sendPushNotificationData()on iOS when usingaddPushNotificationDeepLinkPath() - Added complete code examples for both push notification integration approaches with Firebase Cloud Messaging
- Added Flutter 3.27+ breaking change documentation for deep linking (must disable Flutter's built-in deep linking to avoid conflicts with AppsFlyer)
- Replaced
effective_dartwithflutter_lintsin development dependencies
- Enhanced push notification measurement documentation with clear separation between traditional
6.17.5 #
- Updated to AppsFlyer SDK v6.17.5 for iOS
6.17.3 #
- Updated to AppsFlyer SDK v6.17.3 for both Android and iOS
- Added validateAndLogInAppPurchaseV2 API (Beta) for improved cross-platform purchase validation
- Unified AFPurchaseDetails data structure for type-safe purchase validation
- Enhanced error handling and consistent API across Android and iOS
- Maintains backward compatibility with existing purchase validation methods
6.17.1 #
- Android: Bug fix for users who expirienced
NullPointerExceptions. - Android: added a new disableAppSetId() method for AppSet ID opting-out.
- iOS: Added support for Google Integrated Conversion (ICM) measurement.
- Documentation small fixes.
- Purchase Connector is rolled out to production (StoreKit2 support will be enrolled on next release).
6.16.21 #
- Bug fix for users who reported Locale issue on Android, fixed Locale issue by forcing toUpperCase(Locale.ENGLISH)
- Expanded the unit–tests
6.16.2 #
- setConsentData is now deprecated!
- setConsentDataV2 is the new and recommended way to set manual user consent.
- Added getVersionNumber, returns the plugin's version.
- Fixed typos within the code.
- Fixed and updated tests and their frameworks.
- Push notification measurment API's documentation has been updated.
- Closed a few potential memory leaks.
- Update iOS version to 6.16.2
- Update Android version to 6.16.2
6.15.2 #
- Fixed NullPointerException issue on Android that some clients had.
- Fixed Android MediationNetwork enum issue.
- Update iOS version to 6.15.3
- Update Android version to 6.15.2
6.15.1 #
- Implementation of the new logAdRevenue API for iOS and Android
- Documentation update for the new logAdRevenue API
- Update iOS version to 6.15.1
- Update Android version to 6.15.1
6.14.3 #
- Fixed mapOptions issue with manualStart
- Inherit Privacy Manifest from the native iOS SDK via Cocoapods
- Bump iOS version to 6.14.3
6.14.2 #
- Bump version to iOS v6.14.2 and Android v6.14.0
- Added Privacy Manifest to support Apple latest changes: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files
6.13.2+1 #
- Hotfix for manualStart on iOS
6.13.2 #
- Added new APIs such as
anonymizeUser,performOnDeepLinking - Added to the
startSDKAPI,onSuccessandonErrorcallbacks - Update to iOS SDK to v6.13.2
6.13.0+2 #
- Update to iOS SDK to v6.13.1
6.13.0+1 #
- Added enableTCFDataCollection , setConsentData with AppsFlyerConsent class
- Added new boolean option to AppsFlyerOption class , manualStart
- Added startSDK API
- Updated readme and elaborated on the new APIs
6.12.2 #
- Update to Android SDK to v6.12.2 & iOS SDK to v6.12.2
- Deprecated CreateOneLinkHttpTask updated to LinkGenerator
- Fixed Gradle 8.0 issue
- Documented API and removed unused imports
6.11.3 #
- null pointer exception fix for android, push notification bug fix & ios sdk 6.11.2
6.11.2 #
- update to Android SDK to v6.11.2
6.11.1 #
- update to Android SDK to v6.11.1
6.10.1 #
- update to Android SDK to v6.10.3 & iOS SDK to v6.10.1
6.9.3 #
- update to Android SDK to v6.9.3 & iOS SDK to v6.9.1
- Added
addPushNotificationDeepLinkPathAPI - Added
setCustomerIdAndLogSessionAPI for android
6.8.2 #
- update to android v6.8.2
6.8.0 #
- The API
enableLocationCollectionhas been removed. - The API
setDisableNetworkDatahas been added. - The AD_ID permission has been added to the plugin.
- Updated AppsFlyer Android SDK to v6.8.0
- Updated AppsFlyer iOS SDK to v6.8.0
6.5.2+2 #
6.5.2+1 #
- New APIs: getOutOfStore, setOutOfStore, setResolveDeepLinkURLs, setPartnerData
6.5.2 #
- Updated AppsFlyer Android SDK to v6.5.2
- Updated AppsFlyer iOS SDK to v6.5.2
6.4.4+2 #
6.4.0+2 #
6.4.0+1 #
- Added nullable in deeplink object
- Remove of local stream import
6.4.0 #
- Updated to 6.4.0 in iOS & Android SDK
- Dedicated class for UDL for handling deeplink
- New API
setSharingFilterForPartners.setSharingFilter&setSharingFilterForAllPartnersAPIs were deprecated. - setIntent is not required anymore in MainActivity (Android)
- application(_:open:sourceApplication:annotation:) is not required anymore in AppDelegate (iOS)
- application(_:open:options:) is not required anymore in AppDelegate (iOS)
- application(_:continue:restorationHandler:) is not required anymore in AppDelegate (iOS)
6.3.5+3 #
rollback to previous version
6.3.5+2 #
Removed streams from the plugin
6.3.5+1 #
Added setCurrentDeviceLanguage API
6.3.5 #
- Updated AppsFlyer iOS SDK to v6.3.5
6.3.3+1 #
- fix JNI issue
6.3.3-nullsafety.0 #
- change to local broadcast
6.3.2-nullsafety.0 #
- Update to SDK v6.3.2 and added support for disabling advertiser ID on Android
6.3.0-nullsafety.1 #
- Added effective dart package for linter rules
6.3.0-nullsafety.0 #
- Update iOS & Android to SDK v6.3.0
6.2.6-nullsafety.1 #
- Fix for deeplinking in iOS
6.2.6-nullsafety.0 #
- Update for iOS SDK V6.2.6
- Refactoring for SKAD network feature
6.2.4-nullsafety.5 #
- Added support for strict mode (kids app)
- Added support for wait for att status API
6.2.4+4-nullsafety #
- Fix small bug with validateAndLogInAppIosPurchase API
6.2.4+3-nullsafety #
- Small fix for enableFacebookDeferredApplinks, useReceiptValidationSandbox, disableSKAdNetwork, setPushNotification APIs in iOS
6.2.4+2-nullsafety #
- Added disable SKAD API
6.2.4+1-nullsafety #
- Fix for SKAD
6.2.4 #
- Update to iOS SDK v6.2.4
6.2.3+2 #
- Flutter 2.0 update including null safety support
6.2.3+2-beta #
- Flutter 2.0 update including null safety support
6.2.3+1 #
- Added enableFacebookDeferredApplinks API
6.2.3 #
- Update to iOS SDK V6.2.3
6.2.1+7 #
- Refactor for user invite feature
6.2.1+6 #
- Added callbacks support for purchase validation API
6.2.1+5 #
- Added support for useReceiptValidationSandbox API
6.2.1+4 #
- Seperated purchase validation API to iOS/Android
6.2.1+3 #
- Fixed Unified deeplink crush on first launch
6.2.1+2 #
- Hot Fix
6.2.1+1 #
- Added support for push notification API
6.2.1 #
- Update iOS to v6.2.1
- Added support for Unified Deeplink
- Fixed deeplinks issues both for Android & iOS
6.2.0+2 #
- Revert back to version 6.2.0
6.2.0+1 #
- Added Unified Deeplinking for Android
6.2.0 #
- Update both iOS & Android to v6.2.0
6.0.5+3 #
- Fixed
FormatExceptioncaused by iOS side
6.0.5+2 #
- Switch to callbacks for
onAppOpenAttributionandonConversionData
6.0.5+1 #
- Fixed
updateServerUninstallTokenon iOS
6.0.5 #
- Update SDK version to:
- Android: 5.4.5
- iOS: 6.0.5
- Update Google install referrer to 2.1
- Added support for: https://support.appsflyer.com/hc/en-us/articles/207032066#additional-apis-kids-apps
- Fixed typo in
validateAndLogInAppPurchase
6.0.3+5 #
- Add null check for context in Android
6.0.3+4 #
- Fixed bug with sending arguments with methodChannel
6.0.3+3 #
- Added the functions:
logCrossPromotionAndOpenStorelogCrossPromotionImpressionsetAppInviteOneLinkIDgenerateInviteLink
6.0.3+2 #
- Removed AppTrackingTransparency framework
6.0.3+1 #
- Updated AppsFlyer iOS SDK to v6.0.3
6.0.2+1 #
- Fixed the issue in the example app on Android platform
- Updated AppsFlyer SDK to v5.4.3
6.0.2 #
- iOS sdk version is now 6.0.2 and support AppTrackingTransparency framework
- Android sdk version is 5.4.1
5.4.1+1 #
- Added documentation
- Added secured links to README
5.4.1 #
- Updated AppsFlyer SDK to v5.4.1
- Added
sharedFiltersupport
5.2.0+3 #
- Add support for opt-in/ opt-out scenarios
- Fix typo in constant AF_VALIDATE_PURCHASE
5.2.0+2 #
- added default values to
initSdkparams
5.2.0+1 #
- Removed the use of RxDart
- Checked that the streams are not closed before sending events
5.2.0 #
- AppsFlyer sdk version is updated to v5.2.0
- Switched
StreamControllertoBehaviourSubjectto fix bad state related to unclosed streams
1.2.5 #
initSdknow uses Future.delayed- Fixed iOS error in
initSdkreturned String instead of Map
1.2.3 #
- Updated the README
initSdkfunction now uses named parameters
1.2.2 #
- Updated AppsFlyer SDK version:
- Android: v5.1.1
- iOS: v5.1.0
- Added
getSdkVersionto the api - Changed
initSdkto return a dynamic map
1.1.3 #
- Added getAppsFlyerUID function to get a device unique user id
1.1.2 #
- Updated appsflyer framework to 4.9.0
1.1.0 #
-
Added the following functions:
Stream validateAndTrackInAppPurchase( String publicKey, String signature, String purchaseData, String price, String currency, Map<String, String> additionalParameters)void updateServerUninstallToken(String token)Future<String> getHostPrefix()Future<String> getHostName()void setHost(String hostPrefix, String hostName)void setCollectIMEI(bool isCollect)void setCollectAndroidId(bool isCollect)void setAdditionalData(Map addionalData)void waitForCustomerUserId(bool wait)void setCustomerUserId(String userId)void enableLocationCollection(bool flag)void setAndroidIdData(String androidIdData)void setImeiData(String imei)void enableUninstallTracking(String senderId)void setIsUpdate(bool isUpdate)void setCurrencyCode(String currencyCode)void stopTracking(bool isTrackingStopped)void setMinTimeBetweenSessions(int seconds)void setUserEmails(List<String> emails, [EmailCryptType cryptType]
-
Fixed
onAppOpenAttributionnot being called bug
1.0.8 #
- Added
AppsFlyerOptionsto support easier options setup - Changed plugin lib structure
1.0.6 #
- Fixed iOS app id crash
1.0.4 #
- Added dartdoc documentation.
- Changed static methods to class instance methods.
1.0.0 #
First stable version
0.0.5 #
- Changed access modifiers from public to private to class variables
0.0.3 #
Supported sdk functions:
- initSdk
- trackEvent
- registerConversionDataCallback
- registerOnAppOpenAttributionCallback
0.0.1 #
Initial release.