Releases: Purchasely/Purchasely-iOS
5.7.6-rc.1
Hotfix RC backporting the PLYWindow keyWindow restoration fix from develop (#610) onto the 5.7.5 base.
What's fixed
- Host app window's
keyWindowstatus is now restored whenPLYWindowManager.closeWindow()completes — previously, iOS's auto-promotion was unreliable and could leave a hiddenPLYWindowaskeyWindow, blocking all touches. - This addresses an unresponsive-app symptom after dismissing a flow placement opened via the
open_placementaction.
Refinements over the develop fix (#610)
PLYWindow.previousKeyWindowweak reference captured at creation, chained across back-to-back PLYWindow transitions for deterministic restoration.- Host window candidate filter tightened to
windowLevel < Constants.windowLevelso keyboards, alerts, and high-priority overlays are not mistakenly promoted.
Distribution
- SPM only. The FAT framework JSONs (
Purchasely.json,Purchasely-tvOS.json) were intentionally not updated. CocoaPods consumers should stay on 5.7.5. - xcframework asset attached below.
Source
Built from Purchasely-iOS-Sources@5.7.6-rc.1 (release/5.7.6-rc.1 branch).
5.7.5
5.7.4
📦 Release Notes — 5.7.4
What’s New
Bug Fixes:
- Paywall completion now reliably fires on user-initiated dismissal
Previously, dismissing a paywall by swiping the modal sheet, tapping the drawer/popin overlay, or dragging the sheet down could leave the completion callback uninvoked, causing host apps to remain stuck in a loading state.
Completion is now consistently delivered for all user-driven dismissals. - closeAll action on standalone drawer/popin
The closeAll action had no effect on paywalls displayed as a standalone drawer or popin (outside of a flow).
These presentations are now correctly dismissed. - Pending purchases preserved in observer modes
In observer and observerStrict modes, the SDK no longer finishes pending StoreKit transactions, leaving them under the host app’s control as expected. - Flow UI no longer collapses after back navigation
In multi-step flows, navigating back and then toggling a conditional switch could cause part of the UI to collapse.
The layout now renders correctly in this scenario. - Conditional components stability
Fixed cases where conditional components could:- disappear during simultaneous tap and device rotation
- render inconsistently when bound to multiple audience selections
- Introductory offer eligibility
Users with an active subscription in a given group are no longer considered eligible for an introductory offer in that same group. - Promo-code redemption tracking
Restored correct attribution of paywall presentations following a promo-code redemption. - Selected media on paywalls
*_selected_url images, Lottie animations, and videos now display correctly even when no dedicated styles.selected block is defined. - Page control state
Fixed a state-tracking issue where non-default styles were not reapplied after trait changes (e.g. light/dark mode). - Stability
Fixed a UIKit rendering crash.
⚙️ Improvements
- Improved internal concurrency handling in the eligibility flow.
5.7.4-rc.1
Release Candidate — 5.7.4-rc.1
Fix
Conditional-visibility components (labels/images/etc. whose selected condition is driven by a user attribute no longer vanish after a tap followed by device rotation.
5.7.3
What's new
Bug Fixes
- Thread-safety crash in DefaultExternalIntegrationsManager: Fixed a crash on
com.purchasely.events.managerqueue where theattributesdictionary was read concurrently with writes fromsetAttribute/clearAttributes. - Flow re-display state corruption: Fixed duplicate flow registration preventing proper re-initialization when flows are displayed multiple times. Improved paywall re-display to correctly reset presentation state and navigation paths. Enhanced flow state management for better handling during closure and re-opening.
5.7.2
What's new
🐛 Bug Fix
- Flows tabs presentation pre-fetch — Fixed an issue where tab-based flow presentations were not correctly pre-fetched, improving navigation reliability within multi-tab flows
- Solid-color border rendering — Fixed an issue where solid-color borders previously didn't render properly
5.7.1
New
Close Purchasely screens
Dismiss every active Purchasely screen in a single call, regardless of how it was presented.
Purchasely.closeAllScreens()
Non-dismissable Drawers & Popins
Drawers and popins can now be configured as non-dismissable via the Purchasely console. The close button and programmatic dismiss (PLYPresentation.close()) always work regardless
of this setting.
StoreKit Configuration Now Optional
storeKit is no longer a required parameter in Purchasely.start(). The SDK defaults to StoreKit 2 when omitted.
Bug Fixes
- Fixed a thread-safety crash that could occur when loading product data.
- Fixed paywall display modes showing a blank navigation bar in some configurations.
- Fixed drawer and popover layout breaking after device rotation.
- Fixed conditional paywall components disappearing after device rotation on iPad.
- Fixed paywall transitions when navigating between placements and presentations.
5.7.0
🚀 New Features
-
New Display API
Added new methods to display presentations with customizable display modes (fullScreen,modal,drawer,popin,push) and proper error handling. -
Non-dismissable Screens
Added support for non-dismissable flow drawers and popins. -
StoreKit Setting Optional
ThestorekitSettingsparameter in thestartmethod is now optional. -
Deeplink Improvements
Enhanced deeplink handling with better debugging support and universal link format support.
🐛 Bug Fixes
- Various UI fixes for navigation bar display and transitions.
- Fixed potential crashes on older iOS versions.
- Improved stability and reliability of actions execution.
5.7.0-rc.1
Release 5.7.0-rc.1