PackageTrack
Sign in Get early access

appstack_plugin

Track events and revenue with Apple Search Ads attribution for Flutter apps. Supports iOS 15.0+ and Android 5.0+.

2.6.0 10K downloads/mo #227 most downloaded on pub.dev appstack-tech/appstack-flutter-sdk

What this package is like to depend on

Last release 11 days ago

12 Aug 2026

Ships fairly regularly

a new release about every 2 weeks

Nearly every release is documented

notes for 39 of 39 stable releases

5 versions withdrawn

withdrawn after publishing

10 months old

46 releases · first in 2025

46 releases in the last 12 months

see the full history below

Release timeline

46 releases · Oct 2025 to Aug 2026
2026
Release Pre-release Withdrawn

Releases

latest 46
  1. 2.6.0 12 Aug 2026
    Release notes

    Added

    • AppstackPlugin.setCustomerUserId(customerUserId) — sets or clears the customer user ID after configure(), bridging the native iOS/Android setter of the same name. Use it when a login reveals the ID; calling configure() a second time does not work, as a repeat configure() is a no-op and ignores its customerUserId. Clear it on logout so the previous user's ID stops being attached to later events. Passing null (or a blank string) clears the stored ID — unlike configure(), which treats a blank value as "not provided" because it never clears. Safe to call at any time; last write wins.

    Changed

    • Updated the Appstack iOS SDK to 4.5.0 — on iOS, getAttributionParams() no longer comes back empty: the map now always carries an appstack_match_status key reporting the attribution outcome (matched, matched_no_params, organic, skipped, failed or not_configured). Only failed is worth re-reading later; the rest are settled answers. The Dart signature is unchanged — the result is still nullable, so existing null checks keep working — but code that read an empty result as "not attributed" should switch to the status key. Treat the key as iOS-only for now: Android 1.7.0 does not add it, so an empty map still means "nothing yet" there. Also fixed on iOS: a setCustomerUserId() call made immediately after configure() is no longer overwritten by the customerUserId passed to configure(), and a blank customer user ID is treated as absent rather than sent as an empty string.
    • Updated the Appstack Android SDK to 1.7.0 — adds the native setCustomerUserId setter that AppstackPlugin.setCustomerUserId() bridges on Android. No new permission is required.
    Open source →
    Release notes

    Added

    • AppstackPlugin.setCustomerUserId(customerUserId) — sets or clears the customer user ID after configure(), bridging the native iOS/Android setter of the same name. Use it when a login reveals the ID; calling configure() a second time does not work, as a repeat configure() is a no-op and ignores its customerUserId. Clear it on logout so the previous user's ID stops being attached to later events. Passing null (or a blank string) clears the stored ID — unlike configure(), which treats a blank value as "not provided" because it never clears. Safe to call at any time; last write wins.

    Changed

    • Updated the Appstack iOS SDK to 4.5.0 — on iOS, getAttributionParams() no longer comes back empty: the map now always carries an appstack_match_status key reporting the attribution outcome (matched, matched_no_params, organic, skipped, failed or not_configured). Only failed is worth re-reading later; the rest are settled answers. The Dart signature is unchanged — the result is still nullable, so existing null checks keep working — but code that read an empty result as "not attributed" should switch to the status key. Treat the key as iOS-only for now: Android 1.7.0 does not add it, so an empty map still means "nothing yet" there. Also fixed on iOS: a setCustomerUserId() call made immediately after configure() is no longer overwritten by the customerUserId passed to configure(), and a blank customer user ID is treated as absent rather than sent as an empty string.
    • Updated the Appstack Android SDK to 1.7.0 — adds the native setCustomerUserId setter that AppstackPlugin.setCustomerUserId() bridges on Android. No new permission is required.
    Open source →
  2. 2.5.0 06 Aug 2026
    Release notes

    Changed

    • Updated the Appstack iOS SDK to 4.4.1 — attribution matching now includes additional network context to improve match diagnostics.
    • Updated the Appstack Android SDK to 1.6.0 — attribution matching now includes additional device and network context to improve match accuracy, and the Play install referrer is now resolved before the match request so attribution can be determined deterministically. No new permission is required.
    • EventType.install is no longer sent when passed to sendEvent() — both native SDKs already track the install automatically, so sending it by hand previously double-counted installs. Such calls are now logged and discarded natively; the Dart call still succeeds.

    Fixed

    • Android: a remotely disabled app no longer fires the attribution match request — previously enabled=false suppressed only the event POSTs, and a fresh install still called /attribution/match. A disabled app now makes no attribution network calls at all.
    Open source →
    Release notes

    Changed

    • Updated the Appstack iOS SDK to 4.4.1 — attribution matching now includes additional network context to improve match diagnostics.
    • Updated the Appstack Android SDK to 1.6.0 — attribution matching now includes additional device and network context to improve match accuracy, and the Play install referrer is now resolved before the match request so attribution can be determined deterministically. No new permission is required.
    • EventType.install is no longer sent when passed to sendEvent() — both native SDKs already track the install automatically, so sending it by hand previously double-counted installs. Such calls are now logged and discarded natively; the Dart call still succeeds.

    Fixed

    • Android: a remotely disabled app no longer fires the attribution match request — previously enabled=false suppressed only the event POSTs, and a fresh install still called /attribution/match. A disabled app now makes no attribution network calls at all.
    Open source →
  3. 2.4.0 21 Jul 2026
    Release notes

    Changed

    • Updated the Appstack iOS SDK to 4.4.0
    • Updated the Appstack Android SDK to 1.5.0
    • Raised the minimum supported iOS version to 15.0 (required by iOS SDK 4.4.0). This applies to both integration paths — the Swift Package Manager package (Package.swift) and the CocoaPods podspec.
    Open source →
    Release notes

    Changed

    • Updated the Appstack iOS SDK to 4.4.0
    • Updated the Appstack Android SDK to 1.5.0
    • Raised the minimum supported iOS version to 15.0 (required by iOS SDK 4.4.0). This applies to both integration paths — the Swift Package Manager package (Package.swift) and the CocoaPods podspec.
    Open source →
  4. 2.4.0-rc1 21 Jul 2026 pre-release
    Release notes

    Moving 'Publish - dry run' after 'Update version in files' broke publishing:
    flutter pub publish --dry-run fails on warnings (exit 65) and treats the
    dirty git tree left by the sed version edits as a warning ('checked-in files
    are modified in git'). The dry-run must run on the clean checkout; the real
    publish uses -f to force past the version-file edits. This restores the order
    that worked for 2.1.0-2.3.0.

    Open source →
  5. 2.3.0 21 Jul 2026 withdrawn
    Release notes
    • Update Android and iOS plugin configurations to remove deprecated parameters
    • Upgraded Android SDK dependency to version 1.5.0-rc0.
    • Refactored AppstackPlugin to eliminate isDebug and endpointBaseUrl parameters from the public configure API, now handled internally.
    • Introduced a new method to read the development proxy URL from the app's manifest for local testing.
    • Updated documentation to reflect the removal of deprecated parameters and their effects.
    • Adjusted sample app and tests to align with the new configuration process.
    • Enhance integration workflows for Appstack SDK logging and event delivery
    • Added log capturing for Appstack SDK during iOS and Android integration tests to improve observability of event traffic.
    • Updated iOS workflow to start capturing logs and display them after tests, ensuring visibility of SDK activity.
    • Modified Android workflow to capture logcat output and surface relevant SDK logs in the test results.
    • Adjusted integration tests to skip event delivery checks when the APPSTACK_API_KEY is not set, preventing false negatives in test results.
    • Refactor Android integration test workflow to improve log capturing and event visibility
    • Moved log capturing and test execution logic from the workflow file to a dedicated script (ci_android_integration.sh) to maintain shell state.
    • Enhanced the script to capture logcat output and surface Appstack SDK logs in the CI job output, improving observability during integration tests.
    • Updated the integration workflow to call the new script, streamlining the process and reducing complexity in the workflow configuration.
    Open source →
  6. 2.2.2 24 Jun 2026
    Release notes

    Update CHANGELOG for version 2.2.2 and upgrade Appstack iOS SDK to 4.3.1

    Open source →
    Release notes

    Changed

    • Updated the Appstack iOS SDK to 4.3.1
    Open source →
  7. 2.2.2-rc1 24 Jun 2026 pre-release
    Release notes

    Update CHANGELOG for version 2.2.2 and upgrade Appstack iOS SDK to 4.…

    Open source →
  8. 2.2.1 17 Jun 2026
    Release notes

    Update CHANGELOG for version 2.2.1 and upgrade Appstack Android SDK t…

    Open source →
    Release notes

    Changed

    • Updated the Appstack Android SDK to 1.4.1
    Open source →
  9. 2.2.0 05 Jun 2026
    Release notes

    Fix tests suites in the sample app

    Open source →
    Release notes

    Added

    • Updated the Appstack iOS SDK to 4.2.1
    Open source →
  10. 2.1.1 19 May 2026
    Release notes

    Fixed

    • Synced iOS native implementation across all integration paths (CocoaPods and SPM): the SPM source copies of AppstackPlugin.swift were stale and missing customerUserId, wrapperVersion, and the attribution event channel, causing an undefined symbol error at build time.
    Open source →
  11. 2.1.0 19 May 2026
    Release notes

    Added

    • wrapperVersion is now automatically passed to the native iOS and Android SDKs on configure, identifying the Flutter wrapper version (e.g. flutter-2.1.0). This is handled internally and not exposed to the public API.
    Open source →
  12. 2.0.6 24 Apr 2026
    Release notes

    Added

    • Updated the Appstack iOS SDK to 4.0.5
    Open source →
  13. 2.0.5 20 Apr 2026
    Release notes

    Added

    • New getAttributionParamsWithCallback() method — retrieves attribution parameters via a push-style stream backed by a native background thread (Swift Task.detached on iOS, Thread on Android). The stream emits one value then closes. Use this as an alternative to getAttributionParams() when attribution retrieval time may vary.
    Open source →
  14. 2.0.4 08 Apr 2026
    Release notes

    Added

    • Updated the Appstack iOS SDK to 4.0.4
    Open source →
  15. 2.0.3 08 Apr 2026
    Release notes

    Added

    • Updated the Appstack iOS SDK to 4.0.2
    Open source →
  16. 2.0.2 26 Mar 2026
    Release notes

    Added

    • Updated the supported version of flutter
    Open source →
  17. 2.0.1 11 Feb 2026
    Release notes

    Added

    • Updated the iOS SDK to 4.0.1
    Open source →
  18. 2.0.0 10 Feb 2026
    Release notes

    Added

    • Updated the iOS SDK to 4.0.0
    Open source →
  19. 1.6.2 08 Feb 2026
    Release notes

    Added

    • Updated the iOS SDK to 3.6.2
    Open source →
  20. 1.6.1 08 Feb 2026
    Release notes

    Added

    • Updated the iOS SDK to 3.6.1
    Open source →
  21. 1.6.0 04 Feb 2026
    Release notes

    Added

    • Updated the iOS SDK to 3.6.0
    Open source →
  22. 1.5.1 30 Jan 2026
    Release notes

    Added

    • Updated the Android SDK to 1.3.1
    • Updated the iOS SDK to 3.5.1
    • Add the support of customer_user_id in configure method
    Open source →
  23. 1.5.0 28 Jan 2026
    Release notes

    Added

    • Updated the Android SDK to 1.3.0
    • Updated the iOS SDK to 3.5.0
    Open source →
  24. 1.4.1 15 Jan 2026
    Release notes

    Added

    • Fix some bugs linked to Apple Search Ads attribution (upgrade to iOS 3.3.1)
    Open source →
  25. 1.4.0 14 Jan 2026
    Release notes

    Added

    • Rollback some buggy modifications of 3.2.0 (upgrade to 3.3.0)
    Open source →
  26. 1.2.0 15 Dec 2025
    Release notes

    Added

    • New matching method on Android (upgrade to 1.2.2)
    • New securities on iOS (upgrade to 3.1.1)
    Open source →
  27. 1.1.0 09 Dec 2025
    Release notes

    Added

    • New getAttributionParams() method to retrieve attribution parameters from the SDK
    • Updated iOS and Android SDK references to latest versions with attribution params support
    • Added attribution params display in sample app
    Open source →
  28. 1.0.4 04 Dec 2025
    Release notes

    Fixed

    • Updated the iOS SDK dependencies (SPM & Pods static files) to 3.0.2.
    Open source →
  29. 1.0.3 25 Nov 2025
    Release notes

    Fixed

    • Updated the way we are handling the methods on iOS to ensure we are avoiding crashes & threads hanging
    Open source →
  30. 1.0.2 17 Nov 2025
    Release notes

    Fixed

    • Updated SPM plugin code to use parameters map instead of deprecated revenue parameter in sendEvent method
    Open source →
  31. 1.0.1 17 Nov 2025 withdrawn
    Release notes

    Fixed

    • Fixed iOS SDK version reference to use 3.0.0 instead of 2.5.0, resolving compilation errors with sendEvent parameters and isSdkDisabled method
    Open source →
  32. 1.0.0 14 Nov 2025 withdrawn
    Release notes

    Changed

    • BREAKING CHANGE: Modified sendEvent() method to accept parameters map instead of revenue parameter
    • Updated iOS SDK reference to 3.0.0
    • Updated Android SDK reference to 1.0.0
    • Both SDK versions now use parameters dictionary for event data instead of separate revenue parameter
    • Updated all examples and documentation to use the new parameters-based API

    Migration Guide

    // Old API (deprecated)
    await AppstackPlugin.sendEvent(EventType.purchase, revenue: 29.99);
    
    // New API (current)
    await AppstackPlugin.sendEvent(EventType.purchase, parameters: {'revenue': 29.99, 'currency': 'USD'});
    
    Open source →
  33. 0.0.14 31 Oct 2025
    Release notes

    Changed

    • Modified configure() method to return Future<void> instead of Future<bool>
    • Updated documentation and examples to reflect the void return type
    • Add a method isSdkDisabled() to see the value configured in the iOS or the Android SDK
    Open source →
  34. 0.0.13 29 Oct 2025
    Release notes

    Added

    • New getAppstackId() method to retrieve the unique Appstack ID for the current user
    • Updated example app to demonstrate the new getAppstackId() functionality
    • Comprehensive test coverage for the new method across all platform layers
    • Retrieve IDFA automatically on iOS

    Changed

    • Updated iOS native implementation to expose getAppstackId() from AppstackSDK
    • Updated Android native implementation to expose getAppstackId() from AppstackSDK
    • Enhanced documentation with usage examples for the new method
    Open source →
  35. 0.0.12 17 Oct 2025
    Release notes
    • IMPORTANT : Add the support to be able to install the SDK with CocoaPods
    • WARNING : This support feature will be removed as soon as this ticket will be completed and we will go back to SPM usage to have a much cleaner repository (deprecation on flutter's side of cocoapods)
    Open source →
  36. 0.0.11 16 Oct 2025
    Release notes
    • Update the documentation to reference the SPM setup needed to make works the SDK
    Open source →
  37. 0.0.10 15 Oct 2025
    Release notes
    • Update the changelog for 0.0.9 and 0.0.10 to avoid having a reduced score on pub.dev
    Open source →
  38. 0.0.9 15 Oct 2025
    Release notes
    • Update the iOS SDK reference to 2.5.0 (use the new automatic releases for iOS)
    Open source →
  39. 0.0.8 07 Oct 2025
    Release notes

    Fixed

    • Clean the bundling of the iOS Appstack SDK (using SPM / GitHub refs)
    Open source →
  40. 0.0.7 06 Oct 2025
    Release notes

    Fixed

    • Fixed some bugs due to the cleanup
    Open source →
  41. 0.0.6 06 Oct 2025 withdrawn
    Release notes

    Fixed - DEPRECATED

    • Fixed some bugs due to the cleanup
    Open source →
  42. 0.0.5 06 Oct 2025 withdrawn
    Release notes

    Fixed - DEPRECATED

    • Did some cleanup to do easier maintenances on the SDK
    Open source →
  43. 0.0.4 06 Oct 2025
    Release notes

    Fixed

    • Match in a better way what is expected for Swift Package Manager handling
    Open source →
  44. 0.0.3 06 Oct 2025
    Release notes

    Added

    • Example documentation necessary for pub.dev points completion
    • Formatting using dart format .
    • add Package.swift to handle Swift Package Manager
    Open source →
  45. 0.0.2 06 Oct 2025
    Release notes

    Added

    • Automatic release CD for the appstack_plugin
    Open source →
  46. 0.0.1 06 Oct 2025
    Release notes

    Added

    • Initial release of Appstack Flutter Plugin
    • Support for iOS (14.3+) and Android (API 21+)
    • Event tracking with sendEvent() method
    • Revenue tracking for purchase events
    • Apple Search Ads attribution support on iOS
    • Comprehensive EventType enum with standard attribution events
    • Debug mode and custom log levels
    • Custom endpoint URL support
    • Simple, clean API following Flutter best practices

    Features

    • iOS Integration: Full support for Apple Search Ads attribution
    • Android Integration: Google Play Store attribution support
    • Event Types:
      • Lifecycle: install, login, signUp, register
      • Monetization: purchase, addToCart, addToWishlist, initiateCheckout, startTrial, subscribe
      • Gaming: levelStart, levelComplete
      • Engagement: tutorialComplete, search, viewItem, viewContent, share
      • Custom: custom events with custom names
    • Configuration Options: Debug mode, log levels, custom endpoints
    • Documentation: Complete README and USAGE guide

    Technical Details

    • Minimum iOS version: 14.3
    • Minimum Android SDK: 21 (Android 5.0)
    • Flutter SDK: 3.3.0+
    • Dart SDK: 3.9.2+
    • Dependencies:
      • iOS: AppstackSDK ~> 2.0
      • Android: tech.appstack.android-sdk:appstack-android-sdk:0.0.12
    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