Releases: superwall/Superwall-iOS
Releases · superwall/Superwall-iOS
3.5.0-rc.3
Fixes
- Moves resources into their own resources bundle when installing via CocoaPods.
3.5.0-rc.1
This is our first visionOS pre-release, we'll test this on a few devices to
ensure everything works as expected!
Enhancements
- Adds support for visionOS!
3.4.8
Note: This version is the same as 3.4.7, we just needed to update the version number to publish to cocoapods!
Enhancements
- SW-2667: Adds
preferredLanguageCode
andpreferredLocale
to device attributes. If your app isn't already localized for a language you're trying to target, thedeviceLanguageCode
anddeviceLocale
may not be what you're expecting. Use these device attributes instead to access the first preferred locale the user has in their device settings.
Fixes
- Fixes bug where a
transaction_abandon
ortransaction_fail
event would prevent the presented paywall from dismissing ifpaywall_decline
was a trigger. - SW-2678: Fixes issue where the
subscription_start
event was being fired even if a non-recurring product was purchased. - SW-2659: Fixes issue on macOS where the window behind a paywall wasn't being removed when a paywall was dismissed, leading to the app appearing to be in a frozen state.
3.4.7
Enhancements
- SW-2667: Adds
preferredLanguageCode
andpreferredLocale
to device attributes. If your app isn't already localized for a language you're trying to target, thedeviceLanguageCode
anddeviceLocale
may not be what you're expecting. Use these device attributes instead to access the first preferred locale the user has in their device settings.
Fixes
- Fixes bug where a
transaction_abandon
ortransaction_fail
event would prevent the presented paywall from dismissing ifpaywall_decline
was a trigger. - SW-2678: Fixes issue where the
subscription_start
event was being fired even if a non-recurring product was purchased. - SW-2659: Fixes issue on macOS where the window behind a paywall wasn't being removed when a paywall was dismissed, leading to the app appearing to be in a frozen state.
3.4.6
3.4.5
Enhancements
- Adds internal feature flag to disable verbose events like
paywallResponseLoad_start
. - Tracks a Superwall Event
reset
wheneverSuperwall.shared.reset()
is called.
Fixes
- Fixes issue where holdouts were still matching even if the limit set for their corresponding rules were exceeded.
- Fixes potential crash if the free trial notification delay was set to zero seconds.
3.4.4
Enhancements
- Tracks user attributes on session start.
- Exposes
triggerSessionId
on thePaywallInfo
object. - Makes
PaywallSkippedReason
conform toCustomStringConvertible
. - Adds the Superwall SDK version and your app's version/build number to the debugger menu. Press the hamburger icon on the top left in the debugger to access it.
Fixes
- Changes the way paywall presentation serialization is performed to avoid mixing of concurrency paradigms.
- Prevents
preloadAllPaywalls()
from being called if the SDK is already preloading paywalls. - Fixes issue where experiment and trigger session details were missing from transaction events if a paywall was closed before returning a
PurchaseResult
in thePurchaseController
. - Prevents multiple taps on a purchase button from firing the
PurchaseController
purchase function multiple times. - Tracks
survey_response
when selected in debugger.
3.4.3
Enhancements
- Exposes
isPaywallPresented
convenience variable. - Adds
device_attributes
event, which tracks the device attributes every new session. - Stops preloading paywalls that we know won't ever match.
- Adds a
.restored
case toPurchaseResult
andPurchaseResultObjc
. Return this from yourPurchaseController
when you detect a user has tried to purchase a product that they've already purchased. This happens whentransaction.transactionDate < purchaseDate
, wherepurchaseDate
is the date that the purchase was initiated. Check outRCPurchaseController.swift
in our Superwall-UIKit+RevenueCat example app for how to implement this. If you let Superwall handle purchasing, then we will automatically detect this. - Adds
restore_via_purchase_attempt
to atransaction_restore
event. This indicates whether the restoration happened due to the user purchasing or restoring.
3.4.2
3.4.0
Enhancements
- Adds
sdkVersion
,sdkVersionPadded
,appBuildString
, andappBuildStringNumber
to the device object for use in rules.sdkVersion
is the version of the sdk, e.g.3.4.0
.sdkVersionPadded
is the sdk version padded with zeros for use with string comparison. For example003.004.000
.appBuildString
is the build of your app andappBuildStringNumber
is the build of your app casted as an Int (if possible). - When you experience
no_rule_match
, theTriggerFire
event params will specify which part of the rules didn't match in the format"unmatched_rule_<id>": "<outcome>"
. Whereoutcome
will either beOCCURRENCE
, referring to the limit applied to a rule, orEXPRESSION
. Theid
is the experiment id. - Adds a
touches_began
implicit trigger. By adding thetouches_began
event to a campaign, you can show a paywall the first time a user touches anywhere in your app. - Adds the ability to include a close button on a survey.
- If running in sandbox, the duration of a free trial notification added to a paywall will be converted from days to minutes for testing purposes.
- Adds the ability to show a survey after purchasing a product.
Fixes
- Fixes issue where a survey attached to a paywall wouldn't show if you were also using the
paywall_decline
trigger. - Fixes issue where verification was happening after the finishing of transactions when not using a
PurchaseController
. - Fixes issue where the retrieved
StoreTransaction
associated with the purchased product may benil
. - Fixes issue where a
presentationRequest
wasn't being tracked for implicit triggers likesession_start
when there was no internet.