Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an automatic release.
New Features
Offering
metadata (Offering
metadata #2498) via Josh Holtz (@joshdholtz)StoreProduct.pricePerYear
(AddStoreProduct.pricePerYear
#2462) via NachoSoto (@NachoSoto)Bugfixes
AppleReceipt.debugDescription
: don't pretty-print JSON (AppleReceipt.debugDescription
: don't pretty-print JSON #2564) via NachoSoto (@NachoSoto)SK2StoreProduct
: fix crash on iOS 12 (SK2StoreProduct
: fix crash on iOS 12 #2565) via NachoSoto (@NachoSoto)GetCustomerInfo
posts receipts if there are pending transactions (GetCustomerInfo
posts receipts if there are pending transactions #2533) via NachoSoto (@NachoSoto)HTTPClient
: don't assume error responses are JSON (HTTPClient
: don't assume error responses are JSON #2529) via NachoSoto (@NachoSoto)Offline Entitlements
: use offline-computedCustomerInfo
when server is down (Offline Entitlements
: use offline-computedCustomerInfo
when server is down #2368) via NachoSoto (@NachoSoto)OfferingsManager
: returnOfferings
from new disk cache when server is down (OfferingsManager
: returnOfferings
from new disk cache when server is down #2495) via NachoSoto (@NachoSoto)OfferingsManager
: don't consider timeouts as configuration errors (OfferingsManager
: don't consider timeouts as configuration errors #2493) via NachoSoto (@NachoSoto)ETagManager
: don't send validation time if not present (ETagManager
: don't send validation time if not present #2490) via NachoSoto (@NachoSoto)Performance Improvements
PurchasedProductsFetcher
: cache current entitlements (PurchasedProductsFetcher
: cache current entitlements #2507) via NachoSoto (@NachoSoto)CustomerInfoManager.fetchAndCacheCustomerInfoIfStale
no longer fetches data if stale (Perf:CustomerInfoManager.fetchAndCacheCustomerInfoIfStale
no longer fetches data if stale #2508) via NachoSoto (@NachoSoto)Dependency Updates
Other Changes
PostReceiptOperation
: added ability to also postAdServices
token (PostReceiptOperation
: added ability to also postAdServices
token #2566) via NachoSoto (@NachoSoto)Offline Entitlements
: improved computation log (Offline Entitlements
: improved computation log #2562) via NachoSoto (@NachoSoto)TransactionPoster
tests (AddedTransactionPoster
tests #2557) via NachoSoto (@NachoSoto)TransactionPoster
: removed 2 dependencies and abstracted parameters (RefactoredTransactionPoster
: removed 2 dependencies and abstracted parameters #2542) via NachoSoto (@NachoSoto)CustomerInfoManagerTests
: wait forgetAndCacheCustomerInfo
to finish (CustomerInfoManagerTests
: wait forgetAndCacheCustomerInfo
to finish #2555) via NachoSoto (@NachoSoto)StoreTransaction
: implementeddescription
(StoreTransaction
: implementeddescription
#2556) via NachoSoto (@NachoSoto)4.19.1
(Release notes for4.19.1
#2554) via NachoSoto (@NachoSoto)Backend.ResponseHandler
is now@Sendable
(Backend.ResponseHandler
is now@Sendable
#2541) via NachoSoto (@NachoSoto)TransactionPoster
fromPurchasesOrchestrator
(ExtractedTransactionPoster
fromPurchasesOrchestrator
#2540) via NachoSoto (@NachoSoto)4.20.0
(Release notes for4.20.0
#2553) via NachoSoto (@NachoSoto)enableAdServicesAttributionTokenCollection
: added integration test (enableAdServicesAttributionTokenCollection
: added integration test #2551) via NachoSoto (@NachoSoto)AttributionPoster
: replaced hardcoded strings with constants (AttributionPoster
: replaced hardcoded strings with constants #2548) via NachoSoto (@NachoSoto)DefaultDecodable
: moved toMisc/Codable/DefaultDecodable.swift
(DefaultDecodable
: moved toMisc/Codable/DefaultDecodable.swift
#2528) via NachoSoto (@NachoSoto)CircleCI
: specify device to runbackend_integration_tests
(CircleCI
: specify device to runbackend_integration_tests
#2547) via NachoSoto (@NachoSoto)StoreKit2TransactionFetcher
(CreatedStoreKit2TransactionFetcher
#2539) via NachoSoto (@NachoSoto)AsyncSequence.extractValues
(Extracted and testedAsyncSequence.extractValues
#2538) via NachoSoto (@NachoSoto)Offline Entitlements
: don't compute offlineCustomerInfo
when purchasing a consumable products (Offline Entitlements
: don't compute offlineCustomerInfo
when purchasing a consumable products #2522) via NachoSoto (@NachoSoto)OfflineEntitlementsManager
: disable offlineCustomerInfo
in observer mode (OfflineEntitlementsManager
: disable offlineCustomerInfo
in observer mode #2520) via NachoSoto (@NachoSoto)Integration Tests
: workaround forXCTest
crash after a test failure (Integration Tests
: workaround forXCTest
crash after a test failure #2532) via NachoSoto (@NachoSoto)BasePurchasesTests
: fixed leak detection (BasePurchasesTests
: fixed leak detection #2534) via NachoSoto (@NachoSoto)PurchaseTesterSwiftUI
: addedProxyView
toiOS
(PurchaseTesterSwiftUI
: addedProxyView
toiOS
#2531) via NachoSoto (@NachoSoto)CircleCI
: save test archive onloadshedder-integration-tests
(CircleCI
: save test archive onloadshedder-integration-tests
#2530) via NachoSoto (@NachoSoto)SK2StoreProduct
: simplifycurrencyCode
extraction (SK2StoreProduct
: simplifycurrencyCode
extraction #2485) via NachoSoto (@NachoSoto)PurchasedProductsFetcher
: removedAppStore.sync
call (PurchasedProductsFetcher
: removedAppStore.sync
call #2521) via NachoSoto (@NachoSoto)PurchaseTesterSwiftUI
: added new window on Mac to manage proxy (PurchaseTesterSwiftUI
: added new window on Mac to manage proxy #2518) via NachoSoto (@NachoSoto)PurchaseTesterSwiftUI
: added visual feedback for purchase success/failure (PurchaseTesterSwiftUI
: added visual feedback for purchase success/failure #2519) via NachoSoto (@NachoSoto)PurchaseTesterSwiftUI
: fixed macOS UI (PurchaseTesterSwiftUI
: fixed macOS UI #2516) via NachoSoto (@NachoSoto)PurchasedProductsFetcher
: added log if fetching purchased products is slow (PurchasedProductsFetcher
: added log if fetching purchased products is slow #2515) via NachoSoto (@NachoSoto)MainThreadMonitor
: fixed flakiness in CI (MainThreadMonitor
: fixed flakiness in CI #2517) via NachoSoto (@NachoSoto)Offline Entitlements
: disable for custom entitlements mode (Offline Entitlements
: disable for custom entitlements mode #2509) via NachoSoto (@NachoSoto)Offline Entitlements
: fixed iOS 12 tests (Offline Entitlements
: fixed iOS 12 tests #2514) via NachoSoto (@NachoSoto)PurchasedProductsFetcher
: don't throw errors if purchased products were found (PurchasedProductsFetcher
: don't throw errors if purchased products were found #2506) via NachoSoto (@NachoSoto)Offline Entitlements
: allow creating offlineCustomerInfo
with emptyProductEntitlementMapping
(Offline Entitlements
: allow creating offlineCustomerInfo
with emptyProductEntitlementMapping
#2504) via NachoSoto (@NachoSoto)Offline Entitlements
: integration tests (Offline Entitlements
: integration tests #2501) via NachoSoto (@NachoSoto)Xcode
: fixed.storekit
file references in schemes (Xcode
: fixed.storekit
file references in schemes #2505) via NachoSoto (@NachoSoto)MainThreadMonitor
: don't monitor thread if debugger is attached (MainThreadMonitor
: don't monitor thread if debugger is attached #2502) via NachoSoto (@NachoSoto)Purchases
: avoid double-log when settingdelegate
tonil
(Purchases
: avoid double-log when settingdelegate
tonil
#2503) via NachoSoto (@NachoSoto)Integration Tests
: added snapshot test forOfferingsResponse
(Integration Tests
: added snapshot test forOfferingsResponse
#2499) via NachoSoto (@NachoSoto)CustomerInfoManager
: don't cache offlineCustomerInfo
(CustomerInfoManager
: don't cache offlineCustomerInfo
#2378) via NachoSoto (@NachoSoto)Matcher
s into one file (Tests: grouped allMatcher
s into one file #2497) via NachoSoto (@NachoSoto)DangerousSettings
: debug-onlyforceServerErrors
(DangerousSettings
: debug-onlyforceServerErrors
#2486) via NachoSoto (@NachoSoto)DeviceCache
: refactored cache keys (DeviceCache
: refactored cache keys #2494) via NachoSoto (@NachoSoto)CocoapodsInstallation
: fixedXcode 14.3.0
issue (CocoapodsInstallation
: fixedXcode 14.3.0
issue #2489) via NachoSoto (@NachoSoto)HTTPClient
: log actual response status code (HTTPClient
: log actual response status code #2487) via NachoSoto (@NachoSoto)CarthageInstallation
: removed workaround (CarthageInstallation
: removed workaround #2488) via NachoSoto (@NachoSoto)Integration Tests
: addMainThreadMonitor
to ensure main thread is not blocked (Integration Tests
: addMainThreadMonitor
to ensure main thread is not blocked #2463) via NachoSoto (@NachoSoto)