Manos Chorianopoulos

version 2.3.0

......@@ -4,7 +4,7 @@
**Get started with SwiftWarplyFramework in just 5 minutes!**
**Version**: 2.2.10 | **Minimum iOS**: 17.0 | **Swift**: 5.0+
**Version**: 2.3.0 | **Minimum iOS**: 17.0 | **Swift**: 5.0+
---
......@@ -53,7 +53,7 @@ Choose your preferred installation method:
```
https://git.warp.ly/open-source/warply_sdk_framework.git
```
4. Select **Version**: `2.2.10` or **Up to Next Major**
4. Select **Version**: `2.3.0` or **Up to Next Major**
5. Click **Add Package**
6. Select **SwiftWarplyFramework** and click **Add Package**
......@@ -62,7 +62,7 @@ Add to your `Package.swift` dependencies:
```swift
dependencies: [
.package(url: "https://git.warp.ly/open-source/warply_sdk_framework.git", from: "2.2.10")
.package(url: "https://git.warp.ly/open-source/warply_sdk_framework.git", from: "2.3.0")
]
```
......@@ -89,7 +89,7 @@ platform :ios, '17.0'
target 'YourApp' do
use_frameworks!
pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => '2.2.10'
pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => '2.3.0'
end
```
......@@ -1572,29 +1572,34 @@ Start with the Quick Start guide and gradually adopt the advanced features as ne
## 📋 **Changelog**
### **Version 2.2.10** - *June 23, 2025*
### **Version 2.3.0** - *June 30, 2025*
#### **🆕 New Features**
- **Language Configuration Support**: Added configurable language parameter to SDK initialization
- New `language` parameter in `configure()` method (defaults to "el")
- Runtime language switching via `applicationLocale` property
- Automatic configuration sync when language changes
#### **🔧 Network Improvements**
- **Comprehensive Header System**: Implemented complete HTTP header management based on original Objective-C implementation
- Core loyalty headers: `loyalty-web-id`, `loyalty-date`, `loyalty-signature`
- Device identification headers: `unique-device-id`, `vendor`, `platform`, `os_version`
- App identification headers: `loyalty-bundle-id`, `manufacturer`, `ios_device_model`
- Authentication headers with proper Bearer token handling
- Special endpoint headers for registration, and logout flows
- **Dynamic BaseURL Management**: Enhanced baseURL handling for improved configuration flexibility
- Dynamic baseURL reading from Configuration on every request
- Environment-aware URL switching (development/production)
- Real-time configuration updates without restart
- Fallback safety mechanisms with default stage URL
- **SHA256 Signature Generation**: Added secure signature generation for API authentication
- **Device Info Utilities**: Enhanced device information collection for headers
- **Platform-Specific Headers**: iOS-specific headers for better backend compatibility
- **Complete Database Layer**: New DatabaseManager with SQLite.swift integration
- **Configuration System**: 5 new configuration classes for modular settings management
- **Security Enhancements**: KeychainManager and FieldEncryption for secure data handling
- **Enhanced Data Models**: 4 new model classes (TokenModel, CardModel, TransactionModel, PointsHistoryModel)
#### **🔧 Architecture Improvements**
- **Modern Database Operations**: Raw SQL implementation with encryption support
- **Token Management**: Robust TokenRefreshManager with circuit breaker pattern
- **Configuration Management**: Environment-specific configurations (dev/prod)
- **Security Integration**: iOS Keychain Services and AES-256 encryption
- **Network Enhancements**: Central context response parsing and improved error handling
#### **🚨 Breaking Changes**
- **None**: Full backward compatibility maintained
#### **🔧 Internal Improvements**
- **Legacy Credential Removal**: Eliminated dependency on deprecated API credentials
- **Compilation Fixes**: Resolved all compilation errors and warnings
- **Authentication Logic**: Enhanced with graceful degradation for non-authenticated users
- **Error Handling**: Comprehensive error handling throughout the framework
#### **📦 Dependencies**
- **Added**: SQLite.swift (~> 0.12.2) for database operations
- **Maintained**: RSBarcodes_Swift (~> 5.2.0) and SwiftEventBus
---
......
......@@ -646,7 +646,7 @@ public class TokenRefreshManager {
**Key Changes**:
```swift
// Added SQLite.swift dependency
.package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.14.1"),
.package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.12.2"),
// Updated target dependencies
.target(
......
......@@ -2,7 +2,7 @@
## 🚀 Essential Guide for Developers
**Version**: 2.2.10 | **iOS**: 17.0+ | **Swift**: 5.0+
**Version**: 2.3.0 | **iOS**: 17.0+ | **Swift**: 5.0+
---
......@@ -10,7 +10,7 @@
```ruby
# Podfile
pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => 2.2.10
pod 'SwiftWarplyFramework', :git => 'https://git@git.warp.ly/open-source/warply_sdk_framework.git', :tag => 2.3.0
```
---
......@@ -323,7 +323,7 @@ func safeAPICall() {
## 🔍 Debug Info
```swift
print("SDK Version: 2.2.10")
print("SDK Version: 2.3.0")
print("App UUID: \(WarplySDK.shared.appUuid)")
print("Merchant ID: \(WarplySDK.shared.merchantId)")
print("Language: \(WarplySDK.shared.applicationLocale)")
......
Pod::Spec.new do |spec|
spec.name = "SwiftWarplyFramework"
spec.version = "2.2.10"
spec.version = "2.3.0"
spec.summary = "A framework used for several functionalities."
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|
spec.platform = :ios, "17.0"
spec.source = { :git => "https://git.warp.ly/open-source/warply_sdk_framework.git", :tag => "2.2.10" }
spec.source = { :git => "https://git.warp.ly/open-source/warply_sdk_framework.git", :tag => "2.3.0" }
# spec.public_header_files = "SwiftWarplyFramework.framework/Headers/*.h"
# ==> OLD
......
......@@ -9,7 +9,7 @@ SwiftWarplyFramework is an iOS SDK that provides loyalty program functionality,
- Minimum iOS Version: 17.0
- Swift Version: 5.0+
- Distribution: CocoaPods + Swift Package Manager (SPM)
- Framework Version: 2.2.10
- Framework Version: 2.3.0
### Dependencies
- 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
- [x] Update `Package.swift` to include SQLite.swift dependency:
```swift
dependencies: [
.package(url: "https://github.com/stephencelis/SQLite.swift", from: "0.14.1")
.package(url: "https://github.com/stephencelis/SQLite.swift", from: "0.12.2")
]
```
- [x] Add import statements in relevant files
......@@ -645,7 +645,7 @@ Use **SQLite.swift** (modern, pure Swift, type-safe) to implement the same datab
- [x] Test basic SQLite.swift functionality
**Implementation Details:**
- **Package.swift Updated**: Added SQLite.swift dependency (version 0.14.1+)
- **Package.swift Updated**: Added SQLite.swift dependency (version 0.12.2+)
- **Dependency Resolution**: Successfully fetched and resolved SQLite.swift and dependencies
- **DatabaseManager Created**: `SwiftWarplyFramework/Database/DatabaseManager.swift` with actor pattern
- **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
### **Step 6.1.1: Swift Package Manager (SPM) Validation** ✅ **COMPLETED**
- [x] **Dependency Resolution Testing** ✅ **COMPLETED**
- [x] Test `swift package resolve` works correctly with all dependencies
- [x] Validate SQLite.swift dependency integration (0.14.1+ - stable and compatible)
- [x] Validate SQLite.swift dependency integration (0.12.2+ - stable and compatible)
- [x] Validate RSBarcodes_Swift dependency integration (5.2.0+ - stable and compatible)
- [x] Validate SwiftEventBus dependency integration (5.0.0+ - compatible, migration to internal EventDispatcher recommended)
- [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
### **Step 6.1.2: CocoaPods Distribution** ✅ **COMPLETED**
- [x] **Podspec Configuration** ✅ **COMPLETED**
- [x] Update SwiftWarplyFramework.podspec with new dependencies (SQLite.swift ~> 0.14.1 added)
- [x] Update SwiftWarplyFramework.podspec with new dependencies (SQLite.swift ~> 0.12.2 added)
- [x] Configure proper resource file inclusion (ResourcesBundle with xcassets and fonts)
- [x] Set correct iOS deployment target (17.0+ configured)
- [x] Define proper source file patterns (SwiftWarplyFramework/**/*.{h,m,swift,xib,storyboard})
......