Manos Chorianopoulos

version 2.3.0

...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 4
5 **Get started with SwiftWarplyFramework in just 5 minutes!** 5 **Get started with SwiftWarplyFramework in just 5 minutes!**
6 6
7 -**Version**: 2.2.10 | **Minimum iOS**: 17.0 | **Swift**: 5.0+ 7 +**Version**: 2.3.0 | **Minimum iOS**: 17.0 | **Swift**: 5.0+
8 8
9 --- 9 ---
10 10
...@@ -53,7 +53,7 @@ Choose your preferred installation method: ...@@ -53,7 +53,7 @@ Choose your preferred installation method:
53 ``` 53 ```
54 https://git.warp.ly/open-source/warply_sdk_framework.git 54 https://git.warp.ly/open-source/warply_sdk_framework.git
55 ``` 55 ```
56 -4. Select **Version**: `2.2.10` or **Up to Next Major** 56 +4. Select **Version**: `2.3.0` or **Up to Next Major**
57 5. Click **Add Package** 57 5. Click **Add Package**
58 6. Select **SwiftWarplyFramework** and click **Add Package** 58 6. Select **SwiftWarplyFramework** and click **Add Package**
59 59
...@@ -62,7 +62,7 @@ Add to your `Package.swift` dependencies: ...@@ -62,7 +62,7 @@ Add to your `Package.swift` dependencies:
62 62
63 ```swift 63 ```swift
64 dependencies: [ 64 dependencies: [
65 - .package(url: "https://git.warp.ly/open-source/warply_sdk_framework.git", from: "2.2.10") 65 + .package(url: "https://git.warp.ly/open-source/warply_sdk_framework.git", from: "2.3.0")
66 ] 66 ]
67 ``` 67 ```
68 68
...@@ -89,7 +89,7 @@ platform :ios, '17.0' ...@@ -89,7 +89,7 @@ platform :ios, '17.0'
89 target 'YourApp' do 89 target 'YourApp' do
90 use_frameworks! 90 use_frameworks!
91 91
92 - pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => '2.2.10' 92 + pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => '2.3.0'
93 end 93 end
94 ``` 94 ```
95 95
...@@ -1572,29 +1572,34 @@ Start with the Quick Start guide and gradually adopt the advanced features as ne ...@@ -1572,29 +1572,34 @@ Start with the Quick Start guide and gradually adopt the advanced features as ne
1572 1572
1573 ## 📋 **Changelog** 1573 ## 📋 **Changelog**
1574 1574
1575 -### **Version 2.2.10** - *June 23, 2025* 1575 +### **Version 2.3.0** - *June 30, 2025*
1576 1576
1577 #### **🆕 New Features** 1577 #### **🆕 New Features**
1578 - **Language Configuration Support**: Added configurable language parameter to SDK initialization 1578 - **Language Configuration Support**: Added configurable language parameter to SDK initialization
1579 - - New `language` parameter in `configure()` method (defaults to "el") 1579 +- **Complete Database Layer**: New DatabaseManager with SQLite.swift integration
1580 - - Runtime language switching via `applicationLocale` property 1580 +- **Configuration System**: 5 new configuration classes for modular settings management
1581 - - Automatic configuration sync when language changes 1581 +- **Security Enhancements**: KeychainManager and FieldEncryption for secure data handling
1582 - 1582 +- **Enhanced Data Models**: 4 new model classes (TokenModel, CardModel, TransactionModel, PointsHistoryModel)
1583 -#### **🔧 Network Improvements** 1583 +
1584 -- **Comprehensive Header System**: Implemented complete HTTP header management based on original Objective-C implementation 1584 +#### **🔧 Architecture Improvements**
1585 - - Core loyalty headers: `loyalty-web-id`, `loyalty-date`, `loyalty-signature` 1585 +- **Modern Database Operations**: Raw SQL implementation with encryption support
1586 - - Device identification headers: `unique-device-id`, `vendor`, `platform`, `os_version` 1586 +- **Token Management**: Robust TokenRefreshManager with circuit breaker pattern
1587 - - App identification headers: `loyalty-bundle-id`, `manufacturer`, `ios_device_model` 1587 +- **Configuration Management**: Environment-specific configurations (dev/prod)
1588 - - Authentication headers with proper Bearer token handling 1588 +- **Security Integration**: iOS Keychain Services and AES-256 encryption
1589 - - Special endpoint headers for registration, and logout flows 1589 +- **Network Enhancements**: Central context response parsing and improved error handling
1590 -- **Dynamic BaseURL Management**: Enhanced baseURL handling for improved configuration flexibility 1590 +
1591 - - Dynamic baseURL reading from Configuration on every request 1591 +#### **🚨 Breaking Changes**
1592 - - Environment-aware URL switching (development/production) 1592 +- **None**: Full backward compatibility maintained
1593 - - Real-time configuration updates without restart 1593 +
1594 - - Fallback safety mechanisms with default stage URL 1594 +#### **🔧 Internal Improvements**
1595 -- **SHA256 Signature Generation**: Added secure signature generation for API authentication 1595 +- **Legacy Credential Removal**: Eliminated dependency on deprecated API credentials
1596 -- **Device Info Utilities**: Enhanced device information collection for headers 1596 +- **Compilation Fixes**: Resolved all compilation errors and warnings
1597 -- **Platform-Specific Headers**: iOS-specific headers for better backend compatibility 1597 +- **Authentication Logic**: Enhanced with graceful degradation for non-authenticated users
1598 +- **Error Handling**: Comprehensive error handling throughout the framework
1599 +
1600 +#### **📦 Dependencies**
1601 +- **Added**: SQLite.swift (~> 0.12.2) for database operations
1602 +- **Maintained**: RSBarcodes_Swift (~> 5.2.0) and SwiftEventBus
1598 1603
1599 --- 1604 ---
1600 1605
......
...@@ -646,7 +646,7 @@ public class TokenRefreshManager { ...@@ -646,7 +646,7 @@ public class TokenRefreshManager {
646 **Key Changes**: 646 **Key Changes**:
647 ```swift 647 ```swift
648 // Added SQLite.swift dependency 648 // Added SQLite.swift dependency
649 -.package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.14.1"), 649 +.package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.12.2"),
650 650
651 // Updated target dependencies 651 // Updated target dependencies
652 .target( 652 .target(
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 2
3 ## 🚀 Essential Guide for Developers 3 ## 🚀 Essential Guide for Developers
4 4
5 -**Version**: 2.2.10 | **iOS**: 17.0+ | **Swift**: 5.0+ 5 +**Version**: 2.3.0 | **iOS**: 17.0+ | **Swift**: 5.0+
6 6
7 --- 7 ---
8 8
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
10 10
11 ```ruby 11 ```ruby
12 # Podfile 12 # Podfile
13 -pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => 2.2.10 13 +pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => 2.3.0
14 ``` 14 ```
15 15
16 --- 16 ---
...@@ -323,7 +323,7 @@ func safeAPICall() { ...@@ -323,7 +323,7 @@ func safeAPICall() {
323 ## 🔍 Debug Info 323 ## 🔍 Debug Info
324 324
325 ```swift 325 ```swift
326 -print("SDK Version: 2.2.10") 326 +print("SDK Version: 2.3.0")
327 print("App UUID: \(WarplySDK.shared.appUuid)") 327 print("App UUID: \(WarplySDK.shared.appUuid)")
328 print("Merchant ID: \(WarplySDK.shared.merchantId)") 328 print("Merchant ID: \(WarplySDK.shared.merchantId)")
329 print("Language: \(WarplySDK.shared.applicationLocale)") 329 print("Language: \(WarplySDK.shared.applicationLocale)")
......
1 Pod::Spec.new do |spec| 1 Pod::Spec.new do |spec|
2 2
3 spec.name = "SwiftWarplyFramework" 3 spec.name = "SwiftWarplyFramework"
4 - spec.version = "2.2.10" 4 + spec.version = "2.3.0"
5 spec.summary = "A framework used for several functionalities." 5 spec.summary = "A framework used for several functionalities."
6 6
7 spec.description = "This is the Warply framework used for react native or swift apps for analytics, push notifications and the functionality of the app." 7 spec.description = "This is the Warply framework used for react native or swift apps for analytics, push notifications and the functionality of the app."
...@@ -17,7 +17,7 @@ Pod::Spec.new do |spec| ...@@ -17,7 +17,7 @@ Pod::Spec.new do |spec|
17 17
18 spec.platform = :ios, "17.0" 18 spec.platform = :ios, "17.0"
19 19
20 - spec.source = { :git => "https://git.warp.ly/open-source/warply_sdk_framework.git", :tag => "2.2.10" } 20 + spec.source = { :git => "https://git.warp.ly/open-source/warply_sdk_framework.git", :tag => "2.3.0" }
21 # spec.public_header_files = "SwiftWarplyFramework.framework/Headers/*.h" 21 # spec.public_header_files = "SwiftWarplyFramework.framework/Headers/*.h"
22 22
23 # ==> OLD 23 # ==> OLD
......
...@@ -9,7 +9,7 @@ SwiftWarplyFramework is an iOS SDK that provides loyalty program functionality, ...@@ -9,7 +9,7 @@ SwiftWarplyFramework is an iOS SDK that provides loyalty program functionality,
9 - Minimum iOS Version: 17.0 9 - Minimum iOS Version: 17.0
10 - Swift Version: 5.0+ 10 - Swift Version: 5.0+
11 - Distribution: CocoaPods + Swift Package Manager (SPM) 11 - Distribution: CocoaPods + Swift Package Manager (SPM)
12 -- Framework Version: 2.2.10 12 +- Framework Version: 2.3.0
13 13
14 ### Dependencies 14 ### Dependencies
15 - RSBarcodes_Swift (~> 5.2.0) - Barcode scanning and generation 15 - RSBarcodes_Swift (~> 5.2.0) - Barcode scanning and generation
......
...@@ -637,7 +637,7 @@ Use **SQLite.swift** (modern, pure Swift, type-safe) to implement the same datab ...@@ -637,7 +637,7 @@ Use **SQLite.swift** (modern, pure Swift, type-safe) to implement the same datab
637 - [x] Update `Package.swift` to include SQLite.swift dependency: 637 - [x] Update `Package.swift` to include SQLite.swift dependency:
638 ```swift 638 ```swift
639 dependencies: [ 639 dependencies: [
640 - .package(url: "https://github.com/stephencelis/SQLite.swift", from: "0.14.1") 640 + .package(url: "https://github.com/stephencelis/SQLite.swift", from: "0.12.2")
641 ] 641 ]
642 ``` 642 ```
643 - [x] Add import statements in relevant files 643 - [x] Add import statements in relevant files
...@@ -645,7 +645,7 @@ Use **SQLite.swift** (modern, pure Swift, type-safe) to implement the same datab ...@@ -645,7 +645,7 @@ Use **SQLite.swift** (modern, pure Swift, type-safe) to implement the same datab
645 - [x] Test basic SQLite.swift functionality 645 - [x] Test basic SQLite.swift functionality
646 646
647 **Implementation Details:** 647 **Implementation Details:**
648 -- **Package.swift Updated**: Added SQLite.swift dependency (version 0.14.1+) 648 +- **Package.swift Updated**: Added SQLite.swift dependency (version 0.12.2+)
649 - **Dependency Resolution**: Successfully fetched and resolved SQLite.swift and dependencies 649 - **Dependency Resolution**: Successfully fetched and resolved SQLite.swift and dependencies
650 - **DatabaseManager Created**: `SwiftWarplyFramework/Database/DatabaseManager.swift` with actor pattern 650 - **DatabaseManager Created**: `SwiftWarplyFramework/Database/DatabaseManager.swift` with actor pattern
651 - **Database Schema Defined**: Tables for `requestVariables`, `events`, and `pois` matching original Objective-C 651 - **Database Schema Defined**: Tables for `requestVariables`, `events`, and `pois` matching original Objective-C
...@@ -1658,7 +1658,7 @@ This phase focuses on making the SwiftWarplyFramework production-ready for distr ...@@ -1658,7 +1658,7 @@ This phase focuses on making the SwiftWarplyFramework production-ready for distr
1658 ### **Step 6.1.1: Swift Package Manager (SPM) Validation** ✅ **COMPLETED** 1658 ### **Step 6.1.1: Swift Package Manager (SPM) Validation** ✅ **COMPLETED**
1659 - [x] **Dependency Resolution Testing** ✅ **COMPLETED** 1659 - [x] **Dependency Resolution Testing** ✅ **COMPLETED**
1660 - [x] Test `swift package resolve` works correctly with all dependencies 1660 - [x] Test `swift package resolve` works correctly with all dependencies
1661 - - [x] Validate SQLite.swift dependency integration (0.14.1+ - stable and compatible) 1661 + - [x] Validate SQLite.swift dependency integration (0.12.2+ - stable and compatible)
1662 - [x] Validate RSBarcodes_Swift dependency integration (5.2.0+ - stable and compatible) 1662 - [x] Validate RSBarcodes_Swift dependency integration (5.2.0+ - stable and compatible)
1663 - [x] Validate SwiftEventBus dependency integration (5.0.0+ - compatible, migration to internal EventDispatcher recommended) 1663 - [x] Validate SwiftEventBus dependency integration (5.0.0+ - compatible, migration to internal EventDispatcher recommended)
1664 - [x] Test dependency version compatibility and conflicts (no conflicts found) 1664 - [x] Test dependency version compatibility and conflicts (no conflicts found)
...@@ -1685,7 +1685,7 @@ This phase focuses on making the SwiftWarplyFramework production-ready for distr ...@@ -1685,7 +1685,7 @@ This phase focuses on making the SwiftWarplyFramework production-ready for distr
1685 1685
1686 ### **Step 6.1.2: CocoaPods Distribution** ✅ **COMPLETED** 1686 ### **Step 6.1.2: CocoaPods Distribution** ✅ **COMPLETED**
1687 - [x] **Podspec Configuration** ✅ **COMPLETED** 1687 - [x] **Podspec Configuration** ✅ **COMPLETED**
1688 - - [x] Update SwiftWarplyFramework.podspec with new dependencies (SQLite.swift ~> 0.14.1 added) 1688 + - [x] Update SwiftWarplyFramework.podspec with new dependencies (SQLite.swift ~> 0.12.2 added)
1689 - [x] Configure proper resource file inclusion (ResourcesBundle with xcassets and fonts) 1689 - [x] Configure proper resource file inclusion (ResourcesBundle with xcassets and fonts)
1690 - [x] Set correct iOS deployment target (17.0+ configured) 1690 - [x] Set correct iOS deployment target (17.0+ configured)
1691 - [x] Define proper source file patterns (SwiftWarplyFramework/**/*.{h,m,swift,xib,storyboard}) 1691 - [x] Define proper source file patterns (SwiftWarplyFramework/**/*.{h,m,swift,xib,storyboard})
......