Skip to main content

smartlinks_flutter 2.1.3 copy "smartlinks_flutter: ^2.1.3" to clipboard
smartlinks_flutter: ^2.1.3 copied to clipboard

Unified SmartLinks Flutter SDK for analytics, feedback, apps, ads, community, and blogs.

Changelog #

All notable changes to the smartlinks_flutter umbrella SDK are documented here. Sub-packages share the same version number; see PUBLISHING.md for release steps.

2.1.3 #

Changed #

  • Android / iOS native SDKs: smartlinks_core now depends on Maven live.smartlinks:smartlinks-sdk-core:2.0.4 and CocoaPods SmartLinksSDKCore ~> 2.0.4 (published 2.1.2 still pulled native 2.0.2).

Fixed #

  • verifyGooglePurchase / verifyApplePurchase debug-log the server link_attribution payload so license-tester attribution can be confirmed from logcat without a real charge.

2.1.2 #

Fixed #

  • Link-driven Android installs now include the app version and build in the deferred-link report. Event calls also include the app version and build without overriding app-supplied values.
  • Bounded platform metadata lookup so an unavailable plugin cannot stall event or referrer reporting.
  • Bounded native bridge calls from the prior unreleased core update remain included in this release.

2.1.0 #

Added #

  • Automatic Play Install Referrer attribution (Android). SmartLinks.initialize() now reads the Google Play Install Referrer and reports it to the SmartLinks backend (POST /api/v1/deferred-links) exactly once per install, so installs driven by SmartLinks download pages (referrer=utm_source%3D...%26link_id%3D...%26deeplink_path%3D...) are attributed to their campaign link automatically — no app-side code needed. Fire-and-forget: it never throws and never blocks startup, gives up after 3 failed launches, and is a no-op on iOS/web/desktop and for sideloaded or emulator installs. Opt out with SmartLinks.initialize(reportInstallReferrer: false).
  • SmartLinksInstallReferrer exposed from smartlinks_core for advanced use (manual reportIfNeeded(), referrer parsing helpers).

Changed #

  • smartlinks_core now depends on play_install_referrer (Android-only plugin; inert on other platforms).

2.0.3 #

Fixed #

  • Android: Fixed fatal exceptions (SocketTimeoutException, SSLHandshakeException) crashing the host app by properly handling IOException in native Android API clients.

2.0.2 #

Fixed #

  • iOS: SmartLinksCorePlugin now imports the native SDK module correctly when CocoaPods exposes SmartLinksSDK instead of SmartLinksSDKCore (fixes unable to find module dependency: 'SmartLinksSDKCore' on iOS builds).

2.0.1 #

Added #

  • SmartLinksAppearance — global branding at init plus per-screen overrides (SmartLinksTheme, module string bundles).
  • Promo UI — SmartLinks.showPromoDialog, SmartLinks.openPromoEntry, getPromoStatus().
  • AI test harness — SmartLinks.openAiTest() for integrators to exercise the AI Gateway.
  • Example app — appearance demo, promo flow, AI test, promo-aware feedback.

Changed #

  • Community and blogs surfaces use theme tokens instead of hardcoded accent/card colors.
  • Controller snackbars in community use customizable CommunityStrings / CommunityMessages.
  • SmartLinks.openFeedback auto-sets isPremium from active promo when not specified.

Fixed #

  • JSON parsing crashes when native bridge returns double for integer fields (apps, community, blogs, AI).
  • Community list/detail without prior Firebase init; Hive auth storage for community module.
  • Blog detail loading state and payload parsing.

2.0.0 #

Breaking #

  • Linklytics renamed to SmartLinks — update imports to package:smartlinks_flutter/smartlinks_flutter.dart and call sites to SmartLinks.*.
  • Monorepo structure: native bridge consolidated in smartlinks_core (Maven live.smartlinks:smartlinks-sdk-core, CocoaPods SmartLinksSDK/Core ~> 2.0.1).

Added #

  • Unified SmartLinks.initialize() facade for analytics, ads, feedback, apps, community, blogs, and AI.
  • In-app purchase verification (verifyApplePurchase, verifyGooglePurchase) with automatic attribution.
  • Promo code validate/redeem APIs with local premium persistence.