Skip to content

Releases: superwall/Superwall-iOS

3.12.3

29 Jan 11:51
be0daaa
Compare
Choose a tag to compare

Fixes

  • Fixes an issue where trying to purchase a product that was previously purchased may prevent the spinner from disappearing on the paywall.

4.0.0-beta.4

23 Jan 12:44
265a982
Compare
Choose a tag to compare
4.0.0-beta.4 Pre-release
Pre-release

Fixes

  • Fixes a crash that was caused by a concurrency issue.

4.0.0-beta.3

16 Jan 23:41
Compare
Choose a tag to compare
4.0.0-beta.3 Pre-release
Pre-release

Breaking Changes

  • Renames PaywallView(event:) to PaywallView(placement:).

Fixes

  • Adds extra check to get StoreKit 2 transaction data on transaction_complete.

4.0.0-beta.2

14 Jan 23:47
Compare
Choose a tag to compare
4.0.0-beta.2 Pre-release
Pre-release

Fixes

  • Fixes an issue to do with audience filters.
  • Re-adds unavailable functions from v3 to make the upgrade path smoother.

4.0.0-beta.1

12 Jan 00:52
c8132f7
Compare
Choose a tag to compare
4.0.0-beta.1 Pre-release
Pre-release

Fixes

  • Removes date checking for transactions, which was resulting in some purchases being marked as restored.
  • Checks for the SKIncludeConsumableInAppPurchaseHistory info.plist key. If set to true, defaults to using .storeKit2 only if on iOS 18+.
  • Fixes visionOS issues.

3.12.2

11 Jan 20:25
2b9e48a
Compare
Choose a tag to compare

Fixes

  • Fixes visionOS build issues.

3.12.1

08 Jan 15:58
393c465
Compare
Choose a tag to compare

3.12.1

Fixes

  • Fixes issue for flutter when enabling Apple Search Ads on the Dashboard. This is done by cleaning all user attributes such that only those that are JSON serializable are stored.
  • Removes date checking for transactions, which was resulting in some purchases being marked as restored.

4.0.0-alpha.4

06 Jan 09:52
Compare
Choose a tag to compare
4.0.0-alpha.4 Pre-release
Pre-release

Fixes

  • Fixes bug for StoreKit version specified in a transaction_complete event.
  • Reverts change of presented_by_placement_name to presented_by_event_name to fix campaign charts.

4.0.0-alpha.3

20 Dec 17:22
ea4334f
Compare
Choose a tag to compare
4.0.0-alpha.3 Pre-release
Pre-release

Enhancements

  • Adds the obsoleted attribute to more variants of register(event:) for a smoother upgrade path.

Fixes

  • Fixes issue with optional audience filter properties inside PaywallInfo.

4.0.0-alpha.2

19 Dec 11:53
Compare
Choose a tag to compare
4.0.0-alpha.2 Pre-release
Pre-release

Breaking Changes

  • Removes trigger_session_id from PaywallInfo params.
  • ProductInfo is renamed to Product and the old Product class no longer exists.
  • Removes Superwall.shared.subscriptionStatus in favor of entitlements.
  • Removes subscriptionStatus_didChange.
  • Removes subscriptionStatusDidChange(to:) from the SuperwallDelegate.
  • Renames productItems to products in PaywallInfo.
  • Renames register(event:) to register(placement:).
  • Renames preloadPaywalls(forEvents:) to preloadPaywalls(forPlacements:).
  • Renames getPaywall(forEvent:) to getPaywall(forPlacement:).
  • Renames getPresentationResult(forEvent:) to getPresentationResult(forPlacement:).
  • Renames the TriggerResult eventNotFound case to placementNotFound.
  • Renames the PresentationResult and PaywallSkippedReason noRuleMatch case to noAudienceMatch.
  • Moves ComputedPropertyRequestType to be a top-level type.
  • Renames Store to ProductStore.
  • Removes Superwall.shared.isConfigured in favor of Superwall.shared.configurationStatus.
  • Defaults to StoreKit 2 for product purchasing for apps running on iOS 15+. You can change this back to StoreKit 1 by setting the SuperwallOption storeKitVersion to .storeKit1. Note that when using Objective-C and providing a PurchaseController or using observer mode, the SDK will default to .storeKit1. If you're using the purchase function, you must use .storeKit1.
  • Changes the PurchaseController purchase function to func purchase(product: StoreProduct) async -> PurchaseResult. There will be an StoreKit 2 product accessible via product.sk2Product by default. However, if you're using the StoreKit 1 SuperwallOption or your app is running on an iOS version lower than iOS 15, this will be nil and you can access the StoreKit 1 product via product.sk1Product.
  • Consumables no longer count as lifetime subscriptions when using StoreKit 2.
  • Changes presented_by_event_name to presented_by_placement_name.
  • Renames the PurchaseResult case purchased(productId: String) to purchased(Product).
  • Changes the Swift onDismiss block of the PaywallPresentationHandler to accept both a PaywallInfo object and a PaywallResult object so you know which product was purchased after dismiss.
  • Changes the onRequestDismiss block of the PaywallView to accept both a PaywallInfo object and a PaywallResult object.
  • Changes the Objective-C onDismiss block of the PaywallPresentationHandler to accept both a PaywallInfo object, a PaywallResult object, and an optional StoreProduct, so you know which product was purchased after dismiss.
  • Renames LogScope case paywallTransactions to transactions.
  • Adds type to the transactionComplete placement.

Enhancements

  • Adds purchase(_:) support for both StoreKit 2 products and StoreProduct.
  • Adds Superwall.shared.entitlements. This is a published property of type EntitlementStatus. If you're using Combine or SwiftUI, you can listen to this to receive updates whenever it changes. Otherwise, you can use the SuperwallDelegate method entitlementStatusDidChange(from:to:). If you're not using a PurchaseController, we will handle the entitlements for you depending on what products the user purchases. However, if you're using a PurchaseControler, you can set the entitlement status, which can be .unknown, .inactive, or .active(Set<Entitlement>). You can also access all, active and inactive entitlements from the entitlements object.
  • Adds getStatus(), setUnknownStatus(), setInactiveStatus(), and setActiveStatus(with:) on Superwall.shared.entitlements for Objective-C users.
  • Tracks an entitlementStatus_didChange event whenever the entitlement status changes.
  • Updates the example apps. We now have Basic and Advanced. Basic is a simple plug-and-play superwall setup that doesn't use entitlements. Advanced uses entitlements and has three possible ways of configuring Superwall: 1. Letting Superwall manage everything, 2. Using a purchase controller with StoreKit, 2. Using a purchase controller with RevenueCat.
  • Uses Superscript for all audience filter evaluations. This is our in-house package that uses Google's Common Expression Language to evaluate audience filters. It allows for complex expressions within the audience filter builder.
  • Adds the LogScope case entitlements.
  • Adds StoreKit 2 observer mode. This can be enabled by setting the SuperwallOptions shouldObservePurchases to true and storeKitVersion to .storeKit2 (which is the default value). Note that this is only available with apps running iOS 17.2+.
  • Adds products(for:) which gets the StoreProducts for given product identifiers.