New
Release 4.0.0
Breaking Changes
InAppReceiptclass replaced byAppReceipttypealias overContentInfo<SignedData<InAppReceiptPayload>>- Sync validation (
try receipt.verify()) replaced by async (await receipt.validate()) - Error types renamed:
IARError→AppReceiptError,ReceiptValidatorError originalAppVersionis nowString?(wasString)ageRatingis nowString?(wasString)- 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
@VerifierBuilderandReceiptValidator - X.509 certificate chain verification using swift-certificates
- Signature verification using swift-crypto
- New receipt fields:
environment,appStoreID,transactionDate,fulfillmentToolVersion,developerID,downloadID,installerVersionID InAppReceiptPayload.Environmentenum (.production,.sandbox,.xcode,.productionSandbox)InAppPurchase.Typeenum (.consumable,.nonConsumable,.autoRenewableSubscription,.nonRenewingSubscription)- Blocking API via
@_spi(Blocking):local_blocking,validate_blocking() - Pluggable decoder via
AppReceiptDecoder.Engineprotocol - DocC documentation
- Privacy manifest (
PrivacyInfo.xcprivacy) - visionOS support
Dependencies
- Removed: ASN1Swift
- Added: swift-asn1 1.5.0+, swift-certificates 1.15.1+, swift-crypto 4.2.0+
New Contributors
- @mikeakers made their first contribution in https://github.com/tikhop/TPInAppReceipt/pull/127
This version wouldn't have been possible without @KeePassium support! Thanks again!
Full Changelog: https://github.com/tikhop/TPInAppReceipt/compare/3.4.1...4.0.0