pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => '2.3.0'
pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => '2.4.0'
end
```
...
...
@@ -1790,6 +1790,34 @@ Start with the Quick Start guide and gradually adopt the advanced features as ne
## 📋 **Changelog**
### **Version 2.4.0** - *March 3, 2026*
#### **🆕 New Features**
-**CouponsetViewController Added**: New view controller for displaying detailed coupon set information. Accepts a `CouponSetItemModel` and integrates seamlessly into navigation stacks and coordinator patterns.
-**Push Notifications Implementation**: Full push notification support migrated from legacy ObjC `WLPushManager` to Swift, including:
- Device token management and server registration via `updateDeviceToken()`
- Warply notification detection using the `"_a"` key in push payloads
- Notification routing by app state (active/background/closed)
- Rich push presentation via `CampaignViewController` WebView (campaign URL built from `session_uuid`)
- Push analytics events (`NB_PushReceived` and `NB_PushAck`)
- Custom push handler protocol (`WarplyPushHandler`) for non-standard action codes
- Pending notification queue for cold-start handling (`handleLaunchOptions()`, `handlePendingNotification()`)
- Badge management via `resetBadge()`
- Comprehensive device info sending to server
- New `PushNotificationReceivedEvent` and `PushNotificationEngagedEvent` in EventDispatcher
- Convenience wrappers for `UNUserNotificationCenterDelegate` methods (host app forwards calls to SDK)
-**ProfileViewController Dynamic Coupons Data**: ProfileViewController now fetches and displays dynamic coupon data from the API, replacing static/placeholder content with real user coupons.
-**retrieveCoupon Functionality Added**: New `retrieveCoupon` method for redeeming/retrieving coupons from coupon sets programmatically.