5 min read
IapticBlog

Introducing Iaptic StoreKit 2

Effortless In-App Purchases & Subscriptions for Apple Platforms

Today, we’re excited to announce the official release of Iaptic StoreKit 2 — a lightweight, production-ready Swift package that brings enterprise-grade in-app purchase validation and subscription management to iOS, macOS, watchOS, and tvOS.

The Challenge of In-App Purchases on Apple Platforms

Implementing in-app purchases and managing subscriptions on Apple platforms can be daunting. Developers face a maze of edge cases, security concerns, and the ever-present need to keep up with evolving StoreKit APIs. Ensuring robust server-side validation, handling subscription renewals, and providing a seamless user experience—all while maintaining security and compliance—can quickly become overwhelming.

Why Iaptic StoreKit 2?

Since 2016, Iaptic has empowered thousands of apps to process millions of transactions securely. With Iaptic StoreKit 2, we’re bringing that same reliability and security to Apple’s latest StoreKit 2 framework, making it easier than ever to:

  • Validate purchases and subscriptions with enterprise-grade security
  • Track real-time subscription states and handle renewals automatically
  • Detect fraud and refresh receipts automatically
  • Monitor transactions and revenue with real-time insights
  • Support all Apple platforms with a single, modern Swift package

Built for Developers

We designed Iaptic StoreKit 2 with developer experience at its core. The API is intuitive, modern (async/await), and requires minimal setup. Here’s how easy it is to get started:

import StoreKit
import Iaptic

let iaptic = Iaptic(
    appName: "your-app-name",
    publicKey: "your-public-key"
)

// Validate a purchase
let result = try await product.purchase()
switch result {
case .success(let verificationResult):
    let validationResult = await iaptic.validate(
        productId: product.id, 
        purchaseResult: result
    )
    if validationResult.isValid {
        // Grant entitlements
    }
}

And for monitoring subscription status:

for await verificationResult in Transaction.updates {
    if case .verified(let transaction) = verificationResult {
        let validationResult = await iaptic.validate(
            productId: transaction.productID,
            verificationResult: verificationResult
        )
        if validationResult.isValid {
            // Update entitlements
        }
        await transaction.finish()
    }
}

Key Features

  • Enterprise-Grade Security: Real-time fraud detection, server-side validation, and automated receipt refresh.
  • Smart Performance: Intelligent caching, automatic retry with exponential backoff, and thread-safe implementation.
  • Subscription Management: Real-time tracking, automatic renewal handling, and built-in grace period support.
  • Cross-Platform: Works seamlessly on iOS, macOS, watchOS, and tvOS with Swift 5.5+ and StoreKit 2.

Get Started in Minutes

Iaptic StoreKit 2 is available via Swift Package Manager. Add it to your project with:

.package(url: "https://github.com/iaptic/iaptic-storekit2.git", from: "1.0.0")

Check out our demo project for a complete implementation example.

Learn More


Ready to simplify your in-app purchase and subscription management?
Get started with Iaptic StoreKit 2 today and focus on building great apps—while we handle the rest.