SkillAgentSearch skills...

TPInAppReceipt

Reading and Validating In App Purchase Receipt Locally.

Install / Use

/learn @tikhop/TPInAppReceipt

README

<p align="center"> <img height="160" src="https://github.com/tikhop/TPInAppReceipt/blob/master/www/logo.png" /> </p>

TPInAppReceipt

Swift Package Manager compatible Platform GitHub license

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

dependencies: [
    .package(url: "https://github.com/tikhop/TPInAppReceipt.git", from: "4.0.2")
]
.target(
    name: "YourTarget",
    dependencies: ["TPInAppReceipt"]
)

Usage

Decoding and Reading

import 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.

let 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.

@_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

License

MIT

View on GitHub
GitHub Stars710
CategoryDevelopment
Updated22d ago
Forks94

Languages

Swift

Security Score

100/100

Audited on Mar 9, 2026

No findings