Skip to content

Releases: superwall/Superwall-iOS

4.0.0

19 Feb 22:29
1c21a3c
Compare
Choose a tag to compare

Breaking Changes

  • Removes trigger_session_id from PaywallInfo params.
  • ProductInfo is renamed to Product and the old Product class no longer exists.
  • Renames subscriptionStatusDidChange(to:) to subscriptionStatusDidChange(to:from:) in the SuperwallDelegate.
  • Renames productItems to products in PaywallInfo.
  • Renames register(event:) to register(placement:).
  • Renames preloadPaywalls(forEvents:) to preloadPaywalls(forPlacements:).
  • Renames PaywallView(event:) to PaywallView(placement:).
  • Renames getPaywall(forEvent:) to getPaywall(forPlacement:).
  • Renames getPresentationResult(forEvent:) to getPresentationResult(forPlacement:).
  • Renames the TriggerResult, PresentationResult and PaywallSkippedReason eventNotFound case to placementNotFound and noEventMatch to noAudienceMatch.
  • Renames handleSuperwallEvent(withInfo:) to `handleSuperwallPlacement(withInfo:).
  • 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. When using Objective-C and providing a PurchaseController or using observer mode, the SDK will default to .storeKit1. If you're using Objective-C and using purchase(_:), 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.
  • 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.
  • Removes the restored result from PurchaseResult.

Enhancements

  • Adds purchase(_:) support for both StoreKit 2 products and StoreProduct.
  • Adds Superwall.shared.subscriptionStatus.isActive as a convenience variable.
  • Adds entitlements as associated values to the active case of Superwall.shared.subscriptionStatus. If you're not using a PurchaseController, we will handle the entitlements for you depending on what products the user purchases.
  • Adds Superwall.shared.entitlements which has the following properties: all, active and inactive.
  • Adds setUnknownSubscriptionStatus(), setInactiveSubscriptionStatus(), and setActiveSubscriptionStatus(with:) for Objective-C users.
  • 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 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 ``StoreProduct`s for given product identifiers.

Please see our migration guide and docs for a full breakdown of what's new.

4.0.0-beta.7

10 Feb 16:11
dfdf9d0
Compare
Choose a tag to compare
4.0.0-beta.7 Pre-release
Pre-release

Fixes

  • Fixes an SK1 swift continuation leak when purchasing.

3.12.5

10 Feb 14:51
bd32d30
Compare
Choose a tag to compare

Fixes

  • Fixes a rare crash to do with a swift continuation leak when purchasing.

4.0.0-beta.6

05 Feb 15:20
3bf68a7
Compare
Choose a tag to compare
4.0.0-beta.6 Pre-release
Pre-release

Breaking Changes

  • Removes the restored result from PurchaseResult.

4.0.0-beta.5

30 Jan 16:13
b0b0e4e
Compare
Choose a tag to compare
4.0.0-beta.5 Pre-release
Pre-release

Breaking Changes

  • Replaces entitlements.status with subscriptionStatus.
  • entitlementStatusDidChange reverted to subscriptionStatusDidChange.
  • EntitlementStatus removed in favor of SubscriptionStatus.

Enhancements

  • Adds Superwall.shared.subscriptionStatus.isActive as a convenience variable.

3.12.4

30 Jan 20:51
cc9b758
Compare
Choose a tag to compare

Fixes

  • Simplifies and corrects logic for choosing paywall variants.

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.