PackageTrack
Sign in Get early access

apphud

Official Apphud Flutter SDK is a lightweight open-source library to manage auto-renewable subscriptions and other in-app purchases in your iOS/Android app. No backend required.

3.3.0 882 downloads/mo #604 most downloaded on pub.dev apphud/ApphudSDK-Flutter

What this package is like to depend on

Last release 27 days ago

27 Jul 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 53 of 53 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

53 releases · first in 2021

14 releases in the last 12 months

see the full history below

Release timeline

53 releases · Mar 2021 to Jul 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 53
  1. 3.3.0 27 Jul 2026
    Release notes

    What's New in Flutter SDK v3.3.0:

    • Apphud Rules — Full Rules support for Figma rule paywalls and legacy rule screens via Apphud.setRuleListener() / ApphudRuleListener (appear, purchase, dismiss, survey, and apphudRulePaywallWithoutScreen on both platforms). Also adds Apphud.checkRules(), Apphud.pendingRule(), Apphud.showPendingRuleScreen(), plus Apphud.submitPushNotificationsToken() and Apphud.handlePushNotification() for push-triggered rules. ApphudRule now exposes screenId, paywallId, and paywallIdentifier.

    • Rule purchase detailsapphudRulePurchaseCompleted delivers the purchased subscription / nonRenewingPurchase, the transaction on [iOS] (null for StoreKit 2 purchases) and purchase on [Android]. Failed rule purchases now report a descriptive message, errorCode, and networkIssue.

    • Direct & deferred deep link attribution — Added Apphud.setDeeplinkHandler() (ApphudDeeplinkAttribution with attribution, kind (direct / deferred), and url) and Apphud.requestDeferredDeeplinkAttribution().

    • BREAKING — Removed Apphud.attributeFromDeeplink(). Use Apphud.setDeeplinkHandler() and Apphud.requestDeferredDeeplinkAttribution() instead.

    • iOS deep links — Direct deep links (open url, universal links via continue userActivity, launch options) are captured automatically through the Flutter app-delegate plugin. Host AppDelegate must subclass FlutterAppDelegate and call super if those lifecycle methods are overridden. Only universal links on Apphud's aphd.cc domain are reported as handled, so other deep link SDKs (Firebase Dynamic Links, OneSignal, Branch) keep receiving their own links. Set FlutterDeepLinkingEnabled to false in Info.plist unless you intentionally route the same universal links through Flutter.

    • Android deep links — Forward incoming links from Activity.onCreate / onNewIntent via Apphud.handleIntent(intent) (see example app).

    • Example app — Rules debug actions, Android FCM / iOS APNs push token submit, deep link handling samples, and rule/deeplink listener logging.

    • Included Native SDK Versions — [Android] ApphudSDK-Android 3.4.2, [iOS] ApphudSDK 4.4.8.

    Open source →
    Release notes
    • [Dart] Apphud Rules support (Figma rule paywalls and legacy rule screens):
      • Apphud.setRuleListener() / ApphudRuleListener for screen appear, purchase, dismiss and survey events.
      • Apphud.checkRules(), Apphud.pendingRule(), Apphud.showPendingRuleScreen().
      • Apphud.submitPushNotificationsToken() and Apphud.handlePushNotification() for push-triggered rules.
      • ApphudRule exposes screenId, paywallId, and paywallIdentifier on both platforms.
      • apphudRulePaywallWithoutScreen on both iOS and Android.
      • apphudRulePurchaseCompleted delivers the purchased subscription / nonRenewingPurchase, the transaction (iOS, when the purchase was not made via StoreKit 2) and purchase (Android).
    • [iOS] Rules bridge via ApphudUIDelegate (auto-perform / auto-show) and ApphudUtils.checkRules().
    • [Android] Rules bridge via ApphudRuleCallback passed into Apphud.start() (auto-perform / auto-show).
    • [Dart] Direct and deferred deep link attribution support:
      • Apphud.setDeeplinkHandler() to receive deep link attribution updates (ApphudDeeplinkAttribution with attribution, kind (direct / deferred), and url).
      • Apphud.requestDeferredDeeplinkAttribution() to trigger deferred attribution.
    • BREAKING [Dart] Removed Apphud.attributeFromDeeplink(). Use Apphud.setDeeplinkHandler() and Apphud.requestDeferredDeeplinkAttribution() instead.
    • [iOS] Direct deep links (open url, universal links via continue userActivity, and launch options) are captured automatically through the Flutter app delegate plugin. This requires the host AppDelegate to subclass FlutterAppDelegate and to not override those lifecycle methods without calling super. Only universal links hosted on Apphud's aphd.cc domain are consumed by the plugin, so other deep link SDKs (Firebase Dynamic Links, OneSignal, Branch) keep receiving their own links.
    • [Android] Forward incoming links from your Activity's onCreate and onNewIntent to the native SDK via Apphud.handleIntent(intent) (see the updated example app).
    • Example app: Rules debug menu actions, Android FCM / iOS APNs push token submit, deep link handling examples, and rule/deeplink listener logging.
    • Dependencies of Native SDK's were updated to:
      • [Android] 3.4.2
      • [iOS] 4.4.8
    Open source →
  2. 3.2.5 17 Jun 2026
    Release notes

    What's new in v3.2.5:

    • [Android] Fixed a bug that could lead to a crash while upgrading from previous SDK versions to newer.
    Open source →
    Release notes
    • [Android] Fixed a bug that could lead to a crash when upgrading SDK from older versions to newer.
    • Dependencies of Native SDK's were updated to:
      • [Android] 3.2.6
    Open source →
  3. 3.2.4 25 May 2026
    Release notes

    What's New in Flutter SDK v3.2.4:

    • iOS ApphudError fields fix — Errors returned from purchase, purchaseProduct, purchasePromo, restorePurchases, loadFallbackPaywalls, and showPaywall now expose networkIssue and errorCode on the Flutter side (not just message). Previously these fields were always false / null on iOS, so offline/network failures could not be detected from Dart (e.g. show cached paywalls when purchase fails with no internet).

    • iOS fetchPlacements error forwardingfetchPlacements now forwards native errors to Flutter via ApphudPlacements.error, matching Android behavior. Errors include networkIssue and errorCode when applicable.

    • Included Native SDK Versions — [Android] ApphudSDK-Android 3.2.5, [iOS] ApphudSDK 4.2.3.

    Open source →
    Release notes
    • [iOS] ApphudError returned from purchase, purchaseProduct, purchasePromo, restorePurchases, loadFallbackPaywalls, showPaywall and fetchPlacements now exposes networkIssue and errorCode instead of only message. Previously these fields always came as false / null on iOS, making it impossible to detect offline/network failures from Flutter.
    • [iOS] fetchPlacements now forwards native errors to Flutter (matching Android behavior).
    Open source →
  4. 3.2.3 22 May 2026
    Release notes

    What's New in Flutter SDK v3.2.3:

    • User-Level Remote Config & Experiment MetadataApphudUser (from Apphud.start() / startManually() and ApphudListener.userDidLoad) now includes remoteConfig(), remoteConfigString, experimentName, variationName, targetingName, and totalDevicesCount, so you can drive UI/logic from Mission control targeting without an app update.

    • Deep-Link Attribution — Added Apphud.attributeFromDeeplink() to attribute users from a recently opened deep link and receive attribution payload data when available.

    • Placement-First API (Paywalls API Cleanup) — SDK flow is now centered on placements/targetings. Legacy paywall-centric entry points were removed (including ApphudUser.rawPaywalls, Apphud.rawPaywalls(), Apphud.paywallsDidLoadCallback(), and ApphudListener.paywallsDidFullyLoad()). Migrate to placements APIs like Apphud.placements(), Apphud.placement(), Apphud.rawPlacements(), and ApphudListener.placementsDidFullyLoad().

    • Richer Placement & Product ModelsApphudPlacement adds variationName. ApphudProduct adds properties, variationIdentifier, and experimentId for more accurate experiment/targeting context in purchases and analytics.

    • Commitment Plan Helpers (iOS) — Added Apphud.isCommitmentPlanPreferred() and Apphud.isCommitmentPlanSupported() (iOS 26.4+; Android returns false) to check Mission control commitment-plan configuration and device support before purchase.

    • Custom API Host — Added Apphud.setHost(). baseUrl on start / startManually is now applied before SDK initialization on iOS and Android.

    • Mission control Naming — Public documentation updated from Product Hub to Mission control.

    • Native SDK Updates — [Android] ApphudSDK-Android 3.2.5, [iOS] ApphudSDK 4.2.3.

    Open source →
    Release notes
    • Dependencies of Native SDK's were updated to:
      • [Android] 3.2.5
      • [iOS] 4.2.3
    Open source →
  5. 3.2.2 21 May 2026
    Release notes
    • Dependencies of Native SDK's were updated to:
      • [Android] 3.2.4
      • [iOS] 4.2.3
    Open source →
  6. 3.2.0 20 May 2026
    Release notes
    • Dependencies of Native SDK's were updated to:
      • [Android] 3.2.3
      • [iOS] 4.2.2
    • [Dart] ApphudUser: added totalDevicesCount, internalId, experimentName, variationName, targetingName, remoteConfigString, and remoteConfig() helper.
    • [Dart] ApphudPlacement: added variationName.
    • [Dart] ApphudProduct: added properties, variationIdentifier, experimentId, and isCommitmentPlanPreferred().
    • [Dart] Apphud.attributeFromDeeplink() for deeplink attribution.
    • [Dart] Apphud.setHost() to override API host before SDK start.
    • [Dart] Apphud.isCommitmentPlanPreferred() and Apphud.isCommitmentPlanSupported() (iOS only; Android returns false).
    • [iOS], [Android] Product Hub renamed to Mission control in public documentation.
    • [iOS], [Android] Custom API host (baseUrl / setHost) is applied before start / startManually.
    • BREAKING [Dart] Removed ApphudUser.rawPaywalls.
    • BREAKING [Dart] Removed Apphud.rawPaywalls() and Apphud.paywallsDidLoadCallback().
    • BREAKING [Dart] Removed ApphudListener.paywallsDidFullyLoad. Use placementsDidFullyLoad and read paywalls from ApphudPlacement.paywall.
    • [iOS] Product lookup for purchaseProduct and commitment-plan checks uses ApphudPaywallsHelper.resolveProduct (ios/Classes/common/ApphudPaywallsHelper.swift, lines 22–35).
    Open source →
  7. 3.1.2 13 May 2026
    Release notes

    What's new in v3.1.2:

    • [iOS] Fixed SKProductDiscount mapping: identifier and type are now forwarded to Flutter, and priceLocale is serialized correctly (it was hardcoded as an empty map before, which also affected introductoryPrice.priceLocale).
    • [iOS], [Dart] SKProductDiscountWrapper now exposes identifier (String?) and type (SKProductDiscountType enum: introductory / subscription).
    • [iOS], [Dart] SKProductWrapper now exposes the full discounts list in addition to introductoryPrice. This unblocks dynamic resolution of discountID for Apphud.purchasePromo without hardcoding it on the client side.
    • [iOS] checkEligibilityForIntroductoryOffer, checkEligibilityForPromotionalOffer, checkEligibilitiesForIntroductoryOffers and checkEligibilitiesForPromotionalOffers methods were implemented (previously stubbed and not wired up).
    Open source →
    Release notes
    • [iOS] Fixed SKProductDiscount mapping: identifier and type are now forwarded to Flutter, and priceLocale is serialized correctly (it was hardcoded as an empty map before, which also affected introductoryPrice.priceLocale).
    • [iOS], [Dart] SKProductDiscountWrapper now exposes identifier (String?) and type (SKProductDiscountType enum: introductory / subscription).
    • [iOS], [Dart] SKProductWrapper now exposes the full discounts list in addition to introductoryPrice. This unblocks dynamic resolution of discountID for Apphud.purchasePromo without hardcoding it on the client side.
    • [iOS] checkEligibilityForIntroductoryOffer, checkEligibilityForPromotionalOffer, checkEligibilitiesForIntroductoryOffers and checkEligibilitiesForPromotionalOffers methods were implemented (previously stubbed and not wired up).
    • Example app: tapping a product on iOS now opens a dialog with available promotional offers (when any), driving the call to Apphud.purchasePromo(productId:, discountID:). Eligibility flags (introductory / promotional) control the labels and disable offers that are not eligible.
    • Example app: fixed a crash on the Placements screen for placements that have no paywall attached.
    Open source →
  8. 3.1.0 13 Mar 2026
    Release notes

    What's new in v3.1.0:

    • Billing 8 support on Android
    Open source →
    Release notes
    • [Android] Upgrade to Google Billing 8
    • Dependencies of Native SDK's were updated to:
    • [Android] 3.1.0
    • [iOS] 4.0.4
    Open source →
  9. 3.0.2 20 Feb 2026
    Release notes

    What's new in v3.0.2:

    • Fixed a bug with mapping from iOS native module of the "restorePurchases" function.
    • Dependencies of Native SDK's were updated to:
    • [Android] 3.0.6
    • [iOS] 4.0.3
    Open source →
    Release notes
    • Fixed a bug with mapping from iOS native module of the "restorePurchases" function.
    • Dependencies of Native SDK's were updated to:
    • [Android] 3.0.6
    • [iOS] 4.0.3
    Open source →
  10. 3.0.1 23 Dec 2025
    Release notes

    What's new in v3.0.1:

    • [iOS], [Android] showPaywall method has been introduced. Show Figma paywalls in one line: final result = await Apphud.showPaywall(placement.paywall!, maxTimeout: 10, iOSAnimationStyle: IOSAnimationStyle.bottomToTop);
    • [iOS] preloadPaywall method has been introduced.
    • BREAKING [iOS], [Android] fetchPlacements has new optional parameter: forceRefresh. Use this when you need to apply updated audience segmentation or A/B test assignments.
    • [iOS], [Android] isNonRenewingPurchaseConsumable method was introducted.
    • [iOS] loadFallbackPaywalls method was introduced.
    • BREAKING [iOS] collectSearchAdsAttribution method updated. Changed the return type from ApphudError? to Map<String, dynamic>?, now it returns attribution data, if any.
    • BREAKING [iOS], [Android] method paywallClosed removed entirely.
    • BREAKING [Android] method syncPurchasesInObserverMode removed entirely as it syncs automatically in Observer mode.
    • [iOS] updateUserID method now returns ApphudUser model asynchronously.
    • Dependencies of Native SDK's were updated to:
      • [Android] 3.0.4
      • [iOS] 4.0.2
    Open source →
  11. 3.0.0 23 Dec 2025
    Release notes
    • [iOS], [Android] showPaywall method has been introduced. Show Figma paywalls in one line: final result = await Apphud.showPaywall(placement.paywall!, maxTimeout: 10, iOSAnimationStyle: IOSAnimationStyle.bottomToTop);
    • [iOS] preloadPaywall method has been introduced.
    • BREAKING [iOS], [Android] fetchPlacements has new optional parameter: forceRefresh. Use this when you need to apply updated audience segmentation or A/B test assignments.
    • [iOS], [Android] isNonRenewingPurchaseConsumable method was introducted.
    • [iOS] loadFallbackPaywalls method was introduced.
    • BREAKING [iOS] collectSearchAdsAttribution method updated. Changed the return type from ApphudError? to Map<String, dynamic>?, now it returns attribution data, if any.
    • BREAKING [iOS], [Android] method paywallClosed removed entirely.
    • BREAKING [Android] method syncPurchasesInObserverMode removed entirely as it syncs automatically in Observer mode.
    • [iOS] updateUserID method now returns ApphudUser model asynchronously.
    • Dependencies of Native SDK's were updated to:
    • [Android] 3.0.4
    • [iOS] 4.0.2
    Open source →
  12. 2.7.4 01 Oct 2025
    Release notes
    • Dependencies of Native SDK's were updated to:
    • [Android] 2.9.7
    Open source →
  13. 2.7.3 25 Sep 2025
    Release notes
    • Dependencies of Native SDK's were updated to:
    • [Android] 2.9.6
    Open source →
  14. 2.7.2 23 Sep 2025
    Release notes
    • [Android] proguard-rules.pro was improved
    • Dependencies of Native SDK's were updated to:
    • [Android] 2.9.3
    • [iOS], [Android] Added platform property to Subscription model
    • [Android] Added basePlanId property to Subscription model
    • [Android] Added consumableInAppProduct property to purchase consumable product. (Merged https://github.com/apphud/ApphudSDK-Flutter/pull/75)
    Open source →
  15. 2.7.1 29 Jul 2025
    Release notes
    • [Android] proguard-rules.pro was added

    • Dependencies of Native SDK's were updated to:

      • [Android] 2.9.2
    • Google Billing Client updated to 7.1.1

    Open source →
  16. 2.7.0 08 Apr 2025
    Release notes
    • BREAKING [iOS], [Android] addAttribution method was renamed to setAttribution

    • Dependencies of Native SDK's were updated to:

      • [Android] 2.9.1
      • [iOS] 3.6.2
    Open source →
  17. 2.6.0 19 Nov 2024
    Release notes
    • BREAKING [Android] ApphudListener.apphudDidReceivePurchase method was introduced

    • BREAKING [iOS], [Android] paywalls method was removed

    • BREAKING [iOS] rawPaywalls method was removed

    • [Android] ApphudNonRenewingPurchase.purchaseToken property was introduced

    • [Android] ApphudSubscription.purchaseToken property was introduced

    • [Android], [iOS] deferPlacements method was introduced

    • [Android] refreshUserData method was introduced

    • [Android], [iOS] forceFlushUserProperties method was introduced

    • [Android] refreshUserData now returns ApphudUser?

    • [Android] updateUserID now returns ApphudUser?

    • [Android], [iOS] attributeFromWeb method was introduced

    • Dependencies of Native SDK's were updated to:

      • [Android] 2.8.3
      • [iOS] 3.5.6
    Open source →
  18. 2.5.4 15 Aug 2024
    Release notes
    • [iOS],[Android] ApphudAttributionProvider.facebook was added.
    Open source →
  19. 2.5.3 07 Aug 2024
    Release notes
    • [iOS],[Android] ApphudAttributionProvider.custom was added.
    Open source →
  20. 2.5.2 31 Jul 2024
    Release notes
    • [Android] trackPurchase method was introduced.

    • [Android] syncPurchasesInObserverMode method was deprecated. All purchases on Android are now automatically intercepted and sent to Apphud.

    • Dependencies of Native SDK's were updated to:

      • [Android] 2.7.0
      • [iOS] 3.4.0
    Open source →
  21. 2.5.1 07 May 2024
    Release notes
    • [iOS], [Android] Example App was refactored

    • [Android] loadFallbackPaywalls method was introduced

    • Dependencies of Native SDK's were updated to:

      • [Android] 2.6.5
    Open source →
  22. 2.5.0 26 Apr 2024
    Release notes
    • Dependencies of Native SDK's were updated to:
      • [Android] 2.6.0
      • [iOS] 3.3.6
    • BREAKING ApphudGroup's products variable was changed to List<String> productIds.
    Open source →
  23. 2.4.5 18 Apr 2024
    Release notes
    • Dependencies of Native SDK's were updated to:
      • [Android] 2.4.5
    Open source →
  24. 2.4.4 19 Mar 2024
    Release notes
    • [Android] BREAKING Future<List<ApphudPlacement>> placementsDidLoadCallback() renamed to Future<ApphudPlacements> fetchPlacements()

    • [Android] paywallsDidLoadCallback call result contains optional ApphudError

    • [Android] refreshUserData method was introduced

    • [Android] ApphudError now contains networkIssue, billingResponseCode and billingErrorTitle attributes

    • [iOS], [Android] ApphudPaywall now contains variationName and parentPaywallIdentifier attributes

    • Dependencies of Native SDK's were updated to:

      • [Android] 2.4.2
    Open source →
  25. 2.4.3 28 Feb 2024
    Release notes
    • [Android] fixed some build issues

    • Dependencies of Native SDK's were updated to:

      • [Android] 2.3.9
    Open source →
  26. 2.4.2 19 Feb 2024
    Release notes
    • [iOS] Fixed 'addAttribution' calling issue in some cases
    Open source →
  27. 2.4.1 14 Feb 2024
    Release notes
    • [Android] Fixed 'paywalls' calling issue in some cases
    Open source →
  28. 2.4.0 09 Feb 2024
    Release notes
    • Placements: Offers a strategic method to integrate paywalls throughout your app. This feature allows developers to position paywalls effectively in different app sections, such as onboarding or settings, targeting distinct user audiences. For more comprehensive information, please refer to our Placements guide.

    • [iOS], [Android] BREAKING Property 'variationName' were removed from ApphudPaywall, which was confusing developers and lead to incorrect implementations.

    • [iOS] BREAKING Method 'didFetchProductsNotification' was removed.

    • [iOS], [Android] BREAKING Method 'productsDidFetchCallback' was removed.

    • [iOS] BREAKING Method 'refreshStoreKitProducts' was removed.

    • [iOS], [Android] BREAKING Method 'purchaseWithoutValidation' was removed.

    • [iOS] BREAKING Method 'didPurchaseFromPaywall' was removed.

    • [Android] BREAKING Method 'refreshEntitlements' was removed.

    • [iOS] BREAKING Method 'validateReceipt' was removed.

    • [iOS] BREAKING Method 'migratePurchasesIfNeeded' was removed.

    • [iOS] BREAKING Method 'appStoreReceipt' was removed.

    • [iOS] BREAKING Method 'fetchRawReceiptInfo' was removed.

    • [iOS] BREAKING Method 'isSandbox' was removed.

    • [Android] BREAKING Class 'AndroidAccountIdentifiersWrapper' was removed.

    • [Android] BREAKING Method 'syncPurchases' was renamed to 'syncPurchasesInObserverMode'. The ' paywallIdentifier' parameter was removed.

    • [Android] BREAKING Class 'AndroidPurchaseWrapper' was modified.

    • [Android], [iOS] BREAKING Class 'ApphudNonRenewingPurchase' was modified.

    • [Android], [iOS] BREAKING Class 'ApphudPaywall' was modified.

    • [Android], [iOS] BREAKING Class 'ApphudProduct' was modified.

    • [Android], [iOS] BREAKING Class 'ApphudSubscriptionWrapper' was modified.

    • [Android], [iOS] Method 'products' always returns 'ApphudProductComposite' list.

    • [Android], [iOS] BREAKING 'ApphudAttributionProvider.appleSearchAds', ' ApphudAttributionProvider.facebook' were modified.

    • [Android], [iOS] some fixes of the example app

    • [iOS], [Android] 'paywallsDidLoadCallback' method was introduced.

    • [iOS], [Android] 'placements' method was introduced.

    • [iOS], [Android] 'placement' method was introduced.

    • [iOS], [Android] 'placementsDidLoadCallback' method was introduced.

    • [iOS], [Android] 'rawPlacements' method was introduced.

    • [iOS], [Android] 'rawPaywalls' method was introduced.

    • [iOS], [Android] The 'start' and 'startManually' methods now return an ApphudUser object.

    • [iOS], [Android] The 'ApphudListener' 'placementsDidFullyLoad' method was introduced.

    • [iOS], [Android] BREAKING The 'ApphudListener' 'userDidLoad' method now returns an ApphudUser object.

    • Dependencies of Native SDK's were updated to:

      • [Android] 2.3.7
      • [iOS] 3.2.8
    Open source →
  29. 2.3.2 12 Oct 2023
    Release notes
    • [Android] Fixed restore purchase issue in some cases
    Open source →
  30. 2.3.1 02 Aug 2023
    Release notes
    • Fixed purchase result parsing issue in some cases
    Open source →
  31. 2.3.0 03 Jul 2023
    Release notes
    • [Android] BREAKING SkuDetailsWrapper was replaced by ProductDetailsWrapper because of the migration to Billing v5.

    • Dependencies of Native SDK's were updated to:

      • [Android] 2.0.0
    Open source →
  32. 2.2.15 11 May 2023
    Release notes
    • [iOS] PUSH notifications handling was added to the example app.

    • [Android] 'optOutOfTracking' and 'collectDeviceIdentifiers' are introduced

    • [Android] BREAKING Method disableAdTracking is removed.

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.8.0
    Open source →
  33. 2.2.14 29 Mar 2023
    Release notes
    • [Android] Fixes bug with AddAttribution for AppsFlyer provider.
    Open source →
  34. 2.2.13 17 Feb 2023
    Release notes
    • [Android] Bug fixes

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.7.7
    Open source →
  35. 2.2.12 16 Feb 2023
    Release notes
    • [Android] Bug fixes

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.7.6
    Open source →
  36. 2.2.11 14 Feb 2023
    Release notes
    • [Android] Bug fixes

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.7.5
    Open source →
  37. 2.2.10 08 Feb 2023
    Release notes
    • [Android] Bug fixes

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.7.3
    Open source →
  38. 2.2.9 02 Feb 2023
    Release notes
    • [Android] Bug fixes

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.7.2
    Open source →
  39. 2.2.8 10 Jan 2023
    Release notes
    • [Android] Internal improvements and bug fixes with syncing purchases

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.7.0
    Open source →
  40. 2.2.7 18 Nov 2022
    Release notes
    • [Android] fixed incorrect ApphudListener behaviour when the ApphudPlugin instance is created twice because of Firebase.

    • [Android] Internal improvements.

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.6.5
    Open source →
  41. 2.2.6 25 Aug 2022
    Release notes
    • [iOS] Bug fix for Flutter SDK
    • Dependencies of Native SDK's were updated to:
      • [iOS] 2.8.8
    Open source →
  42. 2.2.4 09 Aug 2022
    Release notes
    • [Android] Fixed a bug when ApphudListener’s paywallsDidFullyLoad method wasn’t called in some cases.

    • [Android] Added new method refreshEntitlements().

    • [iOS] hasActiveSubscription(), hasPremiumAccess() improvements and bug fixes

    • [iOS] Added purchasePromo() logging

    • [iOS] Added checkTransactions logic for force receipt sending if a new transaction was found.

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.6.2
      • [iOS] 2.8.6
    Open source →
  43. 2.2.3 24 Jun 2022
    Release notes
    • [iOS] Payment swizzle was disabled for observer mode.

    • [iOS] Improved interaction with Apple Search Ads attribution.

    • [iOS] Updated methods description and improve documentation.

    • Dependencies of Native SDK's were updated to:

      • [iOS] 2.8.3
    Open source →
  44. 2.2.2 05 May 2022
    Release notes
    • [iOS], [Android] Method hasPremiumAccess() was implemented.

    • [Android] The parameter paywallIdentifier was introduced for the method syncPurchases().

    • [iOS] The method didPurchaseFromPaywall was implemented.

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.6.0
      • [iOS] 2.8.1
    Open source →
  45. 2.2.1 23 Feb 2022
    Release notes
    • [Android] Fixed bug that method hasActiveSubscription was false for paying users at launch before data refreshes. Now value is cached.

    • [Android] Fixed internal potential crash

    • [iOS] Fixed 403 server error bug, when user could be blocked from sever 403 error code

    • [iOS] Add push token cache

    • [iOS] Update general cache time

    • [iOS] Update some Logs

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.5.5
      • [iOS] 2.5.7
    Open source →
  46. 2.2.0 11 Feb 2022
    Release notes
    • [iOS] The optional parameter 'level' was added to the method enableDebugLogs(). Possible values are:

      • 'ApphudDebugLevel.low' - the same as previous amount of debug information.
      • 'ApphudDebugLevel.high' - enables printing of additional debug messages, for example HTTP requests and responses.
    • [iOS], [Android] Automatic fetching of Apphud Flutter SDK version was implemented

    • [iOS] BREAKING Method 'disableIDFACollection()' was removed

    • [Android] Method 'grantPromotional()' was implemented

    • [Android], [iOS] Class 'ApphudListener' and method 'setListener({ApphudListener? listener})' were implemented

    • [Android], [iOS] BREAKING Method 'getPaywalls()' was removed. Please use ApphudListener instead.

    • [iOS] BREAKING Method 'paywallsDidLoadCallback()' was removed. Please use ApphudListener instead.

    • [Android] Method 'deviceId()' was implemented

    • [Andoid], [iOS] Significantly improved SDK performance and caching. Now SDK will send much less requests to Apphud server.

    • Dependencies of Native SDK's were updated to:

      • [Android] 1.5.3
      • [iOS] 2.5.6
    Open source →
  47. 2.1.0 03 Nov 2021
    Release notes
    • [iOS], [Android] Experiments were added. Run Experiments(A/B tests) to test different in-app purchases prices in order to find the best.

    • [iOS] Apple search Ads logic was improved. Submit Apple Attribution Token to Apphud with Apphud.addAttribution().

    • [iOS] Paywalls methods was improved. Paywalls are already exist after SDK initialization. Use paywalls() method.

    • [iOS] paywallsDidLoadCallback() method was added. This callback is called when paywalls are fully loaded with their StoreKit products.

    • [iOS] Promotionals were added. You can grant free promotional subscription to user with new method grantPromotional()

    • [iOS] Fixed important bug when User Properties sometimes may not be saved when submitted simultaneously with initialisation.

    • [iOS] Fixed a bug when incoming rules did not automatically mark as read.

    • [Android] Paywalls events methods were implemented: paywallShown(), paywallClosed()

    • [Android] Supporting of Google Billing library 4.0 was implemented

    • [iOS], [Android] Properties 'experimentName' and 'variationName' were added to ApphudPaywall.

    • [iOS], [Android] Bug fixing and some internal improvements.

    • [iOS], [Android] Products list was removed from Example app because of deprecation due to Paywalls.

    • BREAKING refactor [iOS], [Android]:

      • 'name' property was removed from ApphudPaywall
    • Dependencies of Native SDK's were updated to:

      • [Android] 1.3.3
      • [iOS] 2.4.4
    Open source →
  48. 2.0.6 22 Jun 2021
    Release notes
    • Paywalls features were implemented:

      • method getPaywalls() [iOS], [Android]
      • method permissionGroups() [iOS], [Android]
      • method purchase({ ApphudProduct? product }) [iOS], [Android]
      • method paywallShown(ApphudPaywall paywall) [iOS]
      • method paywallClosed(ApphudPaywall paywall) [iOS]
    • Bugs were fixed:

      • Method restorePurchases() always returns result with error [Android]
    • Dependencies of Native SDK's were updated to:

      • [Android] 1.1.3
      • [iOS] 2.1.1
    • BREAKING refactor [iOS], [Android]:

      • AppHud class was renamed to Apphud
      • ApphudProduct was renamed to ApphudProductComposite and was marked as deprecated
      • Method purchase(String productId) -> purchase({String? productId}). Parameter productId was marked as deprecated
    • Methods are deprecated:

      • didFetchProductsNotification()
      • refreshStoreKitProducts()
      • product()
      • products()
    Open source →
  49. 2.0.5 08 Jun 2021
    Release notes
    • [iOS] Add method collectSearchAdsAttribution() to send search ads attribution data to Apphud.
    Open source →
  50. 2.0.4 20 May 2021
    Release notes
    • Update collection dependency
    • Correct readme.md
    Open source →
  51. 2.0.3 20 May 2021
    Release notes
    • Upgrade the example application
    Open source →
  52. 1.0.1 13 Apr 2021
    Release notes
    • [Android] Upgrade to use ApphudSDK-Android:0.8.5
    • [Fixed] [Android] bugs with wrong parameters' names according to Flutter
    • [iOS] Upgrade to use ApphudSDK 1.2
    Open source →
  53. 1.0.0 16 Mar 2021
    Release notes

    First version Apphud SDK for Flutter

    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