New Features
Offline Entitlements
: use offline-computedCustomerInfo
when server is down (#2368) via NachoSoto (@NachoSoto)
Bugfixes
AppleReceipt.debugDescription
: don't pretty-print JSON (#2564) via NachoSoto (@NachoSoto)SK2StoreProduct
: fix crash on iOS 12 (#2565) via NachoSoto (@NachoSoto)GetCustomerInfo
posts receipts if there are pending transactions (#2533) via NachoSoto (@NachoSoto)
Performance Improvements
PurchasedProductsFetcher
: cache current entitlements (#2507) via NachoSoto (@NachoSoto)- Performance: new check to ensure serialization / deserialization is done from background thread (#2496) via NachoSoto (@NachoSoto)
Dependency Updates
- Bump fastlane from 2.212.2 to 2.213.0 (#2544) via dependabot[bot] (@dependabot[bot])
Other Changes
CustomerInfoManager
: post all unfinished transactions (#2563) via NachoSoto (@NachoSoto)PostReceiptOperation
: added ability to also postAdServices
token (#2566) via NachoSoto (@NachoSoto)Offline Entitlements
: improved computation log (#2562) via NachoSoto (@NachoSoto)- Added
TransactionPoster
tests (#2557) via NachoSoto (@NachoSoto) - Refactored
TransactionPoster
: removed 2 dependencies and abstracted parameters (#2542) via NachoSoto (@NachoSoto) CustomerInfoManagerTests
: wait forgetAndCacheCustomerInfo
to finish (#2555) via NachoSoto (@NachoSoto)StoreTransaction
: implementeddescription
(#2556) via NachoSoto (@NachoSoto)Backend.ResponseHandler
is now@Sendable
(#2541) via NachoSoto (@NachoSoto)- Extracted
TransactionPoster
fromPurchasesOrchestrator
(#2540) via NachoSoto (@NachoSoto) enableAdServicesAttributionTokenCollection
: added integration test (#2551) via NachoSoto (@NachoSoto)AttributionPoster
: replaced hardcoded strings with constants (#2548) via NachoSoto (@NachoSoto)DefaultDecodable
: moved toMisc/Codable/DefaultDecodable.swift
(#2528) via NachoSoto (@NachoSoto)CircleCI
: specify device to runbackend_integration_tests
(#2547) via NachoSoto (@NachoSoto)- Created
StoreKit2TransactionFetcher
(#2539) via NachoSoto (@NachoSoto) - Fix load shedder integration tests (#2546) via Josh Holtz (@joshdholtz)
- Fix doc on
Offering.getMetadataValue
(#2545) via Josh Holtz (@joshdholtz) - Extracted and tested
AsyncSequence.extractValues
(#2538) via NachoSoto (@NachoSoto) Offline Entitlements
: don't compute offlineCustomerInfo
when purchasing a consumable products (#2522) via NachoSoto (@NachoSoto)OfflineEntitlementsManager
: disable offlineCustomerInfo
in observer mode (#2520) via NachoSoto (@NachoSoto)BasePurchasesTests
: fixed leak detection (#2534) via NachoSoto (@NachoSoto)PurchaseTesterSwiftUI
: addedProxyView
toiOS
(#2531) via NachoSoto (@NachoSoto)PurchasedProductsFetcher
: removedAppStore.sync
call (#2521) via NachoSoto (@NachoSoto)PurchaseTesterSwiftUI
: added new window on Mac to manage proxy (#2518) via NachoSoto (@NachoSoto)PurchasedProductsFetcher
: added log if fetching purchased products is slow (#2515) via NachoSoto (@NachoSoto)Offline Entitlements
: disable for custom entitlements mode (#2509) via NachoSoto (@NachoSoto)Offline Entitlements
: fixed iOS 12 tests (#2514) via NachoSoto (@NachoSoto)PurchasedProductsFetcher
: don't throw errors if purchased products were found (#2506) via NachoSoto (@NachoSoto)Offline Entitlements
: allow creating offlineCustomerInfo
with emptyProductEntitlementMapping
(#2504) via NachoSoto (@NachoSoto)Offline Entitlements
: integration tests (#2501) via NachoSoto (@NachoSoto)CustomerInfoManager
: don't cache offlineCustomerInfo
(#2378) via NachoSoto (@NachoSoto)DangerousSettings
: debug-onlyforceServerErrors
(#2486) via NachoSoto (@NachoSoto)CocoapodsInstallation
: fixedXcode 14.3.0
issue (#2489) via NachoSoto (@NachoSoto)CarthageInstallation
: removed workaround (#2488) via NachoSoto (@NachoSoto)
To view new release, visit https://github.com/RevenueCat/purchases-ios/releases/tag/4.21.0