A simple, lightweight, and safe Swift framework for handling In-App Purchases with StoreKit 1.
InAppPurchase is a Swift framework that simplifies In-App Purchase implementation for iOS apps by abstracting away the complexities of StoreKit 1. It provides a clean, testable API for fetching products, processing purchases, and handling transactions, making monetization features easier to integrate and maintain.
iOS developers building apps with in-app purchases, particularly those seeking a straightforward, safe abstraction over StoreKit to avoid common pitfalls and reduce boilerplate code.
Developers choose InAppPurchase for its lightweight, safety-focused design that prevents StoreKit bugs, supports promoting in-app purchases, and offers dependency injection for easy mocking and unit testing, unlike more cumbersome StoreKit implementations.
A Simple and Lightweight framework for In App Purchase (Store Kit 1)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Handles App Store-initiated payments with built-in workarounds for StoreKit bugs, such as the priceLocale crash, making implementation safer for iOS 11+.
Conforms to the InAppPurchaseProvidable protocol, enabling easy mocking and unit testing with the included InAppPurchaseStubs framework for better code quality.
Reduces boilerplate by abstracting StoreKit complexities, offering a minimal interface for fetching products, processing purchases, and managing transactions.
Allows manual finishing of transactions by setting shouldCompleteImmediately to false, supporting advanced use cases like deferred purchases or custom validation.
Based on the older StoreKit 1 API, so it lacks support for newer StoreKit 2 features like Swift concurrency, simplified subscription handling, and improved error types.
Multiple instances can lead to duplicate transaction handling if product IDs aren't carefully isolated, requiring extra configuration to avoid fallback handler issues.
Does not include built-in server-side receipt validation, leaving developers to implement this critical security layer separately, which can increase complexity.