Skip to content

Releases: tikhop/TPInAppReceipt

Release 4.0.2

06 Feb 10:43
3ec5000

Choose a tag to compare

What's Changed

  • fix: Use Sec chain validator for xcode receipt by @tikhop in #141

Full Changelog: 4.0.1...4.0.2

Release 4.0.1

04 Feb 18:33
9e2eba9

Choose a tag to compare

What's Changed

Shoutout to @metadynesoftware for quickly checking the newest version and finding a compilation bug on the Catalyst platform.

Full Changelog: 4.0.0...4.0.1

Release 4.0.0

04 Feb 03:20
d2b98c2

Choose a tag to compare

Breaking Changes

  • InAppReceipt class replaced by AppReceipt typealias over ContentInfo<SignedData<InAppReceiptPayload>>
  • Sync validation (try receipt.verify()) replaced by async (await receipt.validate())
  • Error types renamed: IARErrorAppReceiptError, ReceiptValidatorError
  • originalAppVersion is now String? (was String)
  • ageRating is now String? (was String)
  • Minimum platforms raised: iOS 13+, macOS 10.15+, tvOS 13+
  • Swift tools version: 6.0
  • Removed Objective-C support
  • Removed CocoaPods support

New

  • Full PKCS#7 structure: ContentInfo, SignedData, EncapsulatedContentInfo, SignerInfo, AlgorithmIdentifier, etc.
  • Composable validation via @VerifierBuilder and ReceiptValidator
  • X.509 certificate chain verification using swift-certificates
  • Signature verification using swift-crypto
  • New receipt fields: environment, appStoreID, transactionDate, fulfillmentToolVersion, developerID, downloadID, installerVersionID
  • InAppReceiptPayload.Environment enum (.production, .sandbox, .xcode, .productionSandbox)
  • InAppPurchase.Type enum (.consumable, .nonConsumable, .autoRenewableSubscription, .nonRenewingSubscription)
  • Blocking API via @_spi(Blocking): local_blocking, validate_blocking()
  • Pluggable decoder via AppReceiptDecoder.Engine protocol
  • DocC documentation
  • Privacy manifest (PrivacyInfo.xcprivacy)
  • visionOS support

Dependencies

New Contributors

This version wouldn't have been possible without @keepassium support! Thanks again!

Full Changelog: 3.4.1...4.0.0

Release 3.4.1

03 Apr 14:26
e135055

Choose a tag to compare

What's Changed

Full Changelog: 3.4.0...3.4.1

3.4.0

08 Feb 22:14
5c1ecd9

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 3.3.4...3.4.0

3.3.4

29 Jul 09:27
5b830d6

Choose a tag to compare

  • Use kIOMainPortDefault instead of kIOMasterPortDefault when possible. (thanks to @younata)

3.3.0

24 Sep 23:24

Choose a tag to compare

  • Try different network interfaces (en0, en1) when getting the GUID on macOS for hash computation (Thanks to @mshibanami)
  • Improve docs (Thanks to @nneubauer)

3.2.0

25 May 15:52

Choose a tag to compare

  • (#85) Introductory Offer Support. Thanks @Jerland2 for bringing this up.
  • (#84) Make it possible to use the library in Objective-C project. Thanks @MacMark for making it possible.
  • InAppReceipt.init() initializes a local receipt.

3.1.1

03 Apr 20:04

Choose a tag to compare

  • (#83) Fix StoreKitTest receipt encoding. InAppPurchase.originalPurchaseDate is nil in StoreKitTest. Thanks @Jerland2 for the report.

3.1.0

02 Apr 20:46

Choose a tag to compare

  • Use Date type instead of String for all variables containing dates
  • Parse app's age rating