Documentación

iOS (Swift)

Paywalls nativas en SwiftUI con adaptadores de StoreKit 2 y RevenueCat. Requiere iOS 16 o superior.

Instalación

En Xcode: File → Add Package Dependencies e ingresa la URL del repositorio. Luego agrega los productos que necesites: Experiwall (siempre) más ExperiwallStoreKit o ExperiwallRevenueCat.

swift
.package(url: "https://github.com/marcelo-earth/experiwall-ios", from: "0.1.0")

Configuración

swift
import SwiftUI
import Experiwall
import ExperiwallRevenueCat

@main
struct MyApp: App {
    @StateObject var experiwall = ExperiwallSDK(
        apiKey: "ew_pub_...",
        purchaseHandler: RevenueCatPurchaseHandler()
    )

    var body: some Scene {
        WindowGroup {
            ContentView()
                .experiwall(experiwall)
                .paywallSheet()
                .task {
                    await experiwall.identify(userId: "user_123")
                    try? await experiwall.loadConfig()
                }
        }
    }
}

Muestra un paywall

swift
struct ContentView: View {
    @EnvironmentObject var experiwall: ExperiwallSDK

    var body: some View {
        Button("Upgrade") {
            experiwall.present("paywall_abc")
        }
    }
}

Placements

Usa placements para que Experiwall elija automáticamente el paywall correcto y la variante A/B según las reglas de tu campaña.

swift
await experiwall.presentPlacement("onboarding_complete")

Targets

El SDK se divide en tres targets de Swift Package para que solo incluyas lo que necesites:

  • Experiwall: SDK principal, networking y PaywallView. Siempre requerido.
  • ExperiwallStoreKit: StoreKitPurchaseHandler basado en StoreKit 2.
  • ExperiwallRevenueCat: RevenueCatPurchaseHandler basado en el SDK de RevenueCat.