5 min read

Iaptic Swift

Robust In-App Purchases for Swift Applications 🚀

A battle-tested Swift library that simplifies App Store purchases and subscriptions with secure receipt validation through Iaptic's validation service.

Why Iaptic Swift?

🛡️ Secure Validation

  • Iaptic server integration
  • Fraud-resistant receipt checks

📦 All Product Types

  • Consumables & Non-consumables
  • Auto-renewable subscriptions

⚡ Offline Support

  • Local purchase status tracking
  • Graceful network failure handling

🔧 Simplified API

  • Purchase, restore, validate in 3 calls
  • Unified error handling

🔄 Purchase Flow Architecture

sequenceDiagram
    participant App
    participant IapticSwift
    participant AppStore
    participant IapticServer
    
    App->>IapticSwift: Initialize with products
    IapticSwift->>AppStore: Fetch product info
    App->>IapticSwift: Start purchase
    IapticSwift->>AppStore: Process payment
    AppStore-->>IapticSwift: Transaction update
    IapticSwift->>IapticServer: Validate receipt
    IapticServer-->>IapticSwift: Validation result
    IapticSwift->>App: Purchase callback

⚡️ Basic Implementation

// 1. Initialize in AppDelegate
InAppPurchase.initialize(
    iapProducts: [
        IAPProduct(
            productIdentifier: "premium_features",
            productType: .nonConsumable
        )
    ],
    validatorUrlString: "https://validator.iaptic.com/v3/validate?appName=myapp&apiKey=1234"
)

// 2. Purchase handler
func purchasePremiumFeatures() {
    InAppPurchase.purchase(productIdentifier: "premium_features") { result in
        switch result {
        case .success(let transaction):
            print("Purchase successful: \(transaction)")
        case .failure(let error):
            print("Purchase failed: \(error.localizedDescription)")
        }
    }
}

// 3. Check access
if InAppPurchase.hasActivePurchase(for: "premium_features") {
    unlockPremiumFeatures()
}

🚀 Getting Started

Essential Resources: