Skip to content

1.0.2 — Initial Public Release

Choose a tag to compare

@kieran-woodrow kieran-woodrow released this 11 Jun 19:18
· 3 commits to main since this release

First public release of the eSIMplified iOS SDK.

Install

Swift Package Manager (Xcode):

  1. File → Add Package Dependencies
  2. Enter: https://github.com/eSimplified/esimplified-ios-sdk.git
  3. Select Up to Next Major Version from 1.0.2

What's in this release

Repositories (13)

Auth, Countries, Packages, eSIMs, Orders, Payments, Promo Code, Loyalty (incl. Mokafaa OTP), User, Notification, Visa Rewards, Vouchers, Store Review.

Authentication

  • OAuth2 token flow with automatic Bearer/Basic selection per endpoint
  • Transparent 401/403 → refresh → retry pipeline
  • Proactive refresh on tokens within 5-minute expiry buffer
  • Concurrent-refresh protection via isRefreshing actor flag
  • SessionProvider + StorageProvider protocols for app-defined persistence
  • onTokenRefreshed and onAuthenticationFailed callbacks

Network layer

  • Async/await throughout (Swift Concurrency)
  • Configurable in-memory cache with per-method TTL overrides
  • Structured error parsing (ApiErrorResponse for API endpoints, ServerErrorResponse for /auth/token/)
  • Restrictive percent-encoding for auth bodies (correct OAuth2 handling of @&=+/)
  • customHeadersProvider for app-injected headers (currency, language, App Check)

Test coverage

123 tests across 11 suites covering HTTPClient, cache, auth flow, all 12 repositories, and model decoding.

Requirements

  • iOS 17.5+
  • Swift 5.0+
  • Xcode 16+

See README.md for full documentation, including a buy-eSIM recipe and SessionProvider integration.