TPInAppReceipt
Reading and Validating In App Purchase Receipt Locally.
TPInAppReceipt is a lightweight, pure-Swift library for reading and validating Apple In App Purchase Receipt locally. The project is written primarily in Swift, distributed under the MIT License license, first published in 2016. Key topics include: asn1, catalyst, cocoapods, in-app-purchase, in-app-receipt.
TPInAppReceipt
TPInAppReceipt is a lightweight, pure-Swift library for reading and validating Apple In App Purchase Receipt locally.
Installation
Requirements
- Swift 6.0+ / Xcode 16+
- macOS 10.15+ / iOS 13+ / tvOS 13+ / watchOS 6.2+ / visionOS 1+
Swift Package Manager
swiftdependencies: [ .package(url: "https://github.com/tikhop/TPInAppReceipt.git", from: "4.0.2") ]
swift.target( name: "YourTarget", dependencies: ["TPInAppReceipt"] )
Usage
Decoding and Reading
swiftimport TPInAppReceipt // Local receipt let receipt = try await AppReceipt.local // From raw data let receipt = try AppReceipt.receipt(from: data)
Access receipt fields, query purchases, check subscriptions and introductory offer eligibility.
See Working with Receipt for details.
Validating
Default validation: certificate chain + signature + hash + metadata.
swiftlet result = await receipt.validate() switch result { case .valid: break case .invalid(let error): print(error) }
Supports custom validators via @VerifierBuilder.
See Validating Receipt for details.
Blocking API
For contexts where async is not available.
swift@_spi(Blocking) import TPInAppReceipt let receipt = try AppReceipt.local_blocking let result = receipt.validate_blocking()
See Blocking Mode for details.
Migrating from v3
See TPInAppReceipt 4.0 Migration Guide.
Essential Reading
- Apple - About Receipt Validation
- Apple - Receipt Validation Programming Guide
- Apple - Validating Receipts Locally
- fluffy.es - Tutorial: Read and validate in-app purchase receipt locally using TPInAppReceipt
- Faisal Bin Ahmed - All the wrong ways to persist in-app purchase status in your macOS app
- objc.io - Receipt Validation
License
MIT
Contributors
Showing top 12 contributors by commit count.
