Releases: superwall/Superwall-iOS
Releases · superwall/Superwall-iOS
3.12.3
4.0.0-beta.4
Fixes
- Fixes a crash that was caused by a concurrency issue.
4.0.0-beta.3
Breaking Changes
- Renames
PaywallView(event:)
toPaywallView(placement:)
.
Fixes
- Adds extra check to get StoreKit 2 transaction data on
transaction_complete
.
4.0.0-beta.2
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
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 totrue
, defaults to using.storeKit2
only if on iOS 18+. - Fixes visionOS issues.
3.12.2
3.12.1
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
Fixes
- Fixes bug for StoreKit version specified in a
transaction_complete
event. - Reverts change of
presented_by_placement_name
topresented_by_event_name
to fix campaign charts.
4.0.0-alpha.3
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
Breaking Changes
- Removes
trigger_session_id
fromPaywallInfo
params. ProductInfo
is renamed toProduct
and the oldProduct
class no longer exists.- Removes
Superwall.shared.subscriptionStatus
in favor of entitlements. - Removes
subscriptionStatus_didChange
. - Removes
subscriptionStatusDidChange(to:)
from theSuperwallDelegate
. - Renames
productItems
toproducts
inPaywallInfo
. - Renames
register(event:)
toregister(placement:)
. - Renames
preloadPaywalls(forEvents:)
topreloadPaywalls(forPlacements:)
. - Renames
getPaywall(forEvent:)
togetPaywall(forPlacement:)
. - Renames
getPresentationResult(forEvent:)
togetPresentationResult(forPlacement:)
. - Renames the
TriggerResult
eventNotFound
case toplacementNotFound
. - Renames the
PresentationResult
andPaywallSkippedReason
noRuleMatch
case tonoAudienceMatch
. - Moves
ComputedPropertyRequestType
to be a top-level type. - Renames
Store
toProductStore
. - Removes
Superwall.shared.isConfigured
in favor ofSuperwall.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 tofunc purchase(product: StoreProduct) async -> PurchaseResult
. There will be an StoreKit 2 product accessible viaproduct.sk2Product
by default. However, if you're using the StoreKit 1SuperwallOption
or your app is running on an iOS version lower than iOS 15, this will benil
and you can access the StoreKit 1 product viaproduct.sk1Product
. - Consumables no longer count as lifetime subscriptions when using StoreKit 2.
- Changes
presented_by_event_name
topresented_by_placement_name
. - Renames the
PurchaseResult
casepurchased(productId: String)
topurchased(Product)
. - Changes the Swift
onDismiss
block of thePaywallPresentationHandler
to accept both aPaywallInfo
object and aPaywallResult
object so you know which product was purchased after dismiss. - Changes the
onRequestDismiss
block of thePaywallView
to accept both aPaywallInfo
object and aPaywallResult
object. - Changes the Objective-C
onDismiss
block of thePaywallPresentationHandler
to accept both aPaywallInfo
object, aPaywallResult
object, and an optionalStoreProduct
, so you know which product was purchased after dismiss. - Renames
LogScope
casepaywallTransactions
totransactions
. - Adds
type
to thetransactionComplete
placement.
Enhancements
- Adds
purchase(_:)
support for both StoreKit 2 products andStoreProduct
. - Adds
Superwall.shared.entitlements
. This is a published property of typeEntitlementStatus
. If you're using Combine or SwiftUI, you can listen to this to receive updates whenever it changes. Otherwise, you can use theSuperwallDelegate
methodentitlementStatusDidChange(from:to:)
. If you're not using aPurchaseController
, we will handle the entitlements for you depending on what products the user purchases. However, if you're using aPurchaseControler
, you can set the entitlement status, which can be.unknown
,.inactive
, or.active(Set<Entitlement>)
. You can also accessall
,active
andinactive
entitlements from the entitlements object. - Adds
getStatus()
,setUnknownStatus()
,setInactiveStatus()
, andsetActiveStatus(with:)
onSuperwall.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
caseentitlements
. - Adds StoreKit 2 observer mode. This can be enabled by setting the
SuperwallOptions
shouldObservePurchases
totrue
andstoreKitVersion
to.storeKit2
(which is the default value). Note that this is only available with apps running iOS 17.2+. - Adds
products(for:)
which gets theStoreProduct
s for given product identifiers.