Releases
4.19.0
New Features
New ErrorCode.signatureVerificationFailed
which will be used for an upcoming feature
Bugfixes
Purchases.deinit
: don't reset Purchases.proxyURL
(#2346 ) via NachoSoto (@NachoSoto )
Other Changes
Introduced Configuration.EntitlementVerificationMode
and VerificationResult
(#2277 ) via NachoSoto (@NachoSoto )
PurchasesDiagnostics
: added step to verify signature verification (#2267 ) via NachoSoto (@NachoSoto )
HTTPClient
: added signature validation and introduced ErrorCode.signatureVerificationFailed
(#2272 ) via NachoSoto (@NachoSoto )
ETagManager
: don't use ETags if response verification failed (#2347 ) via NachoSoto (@NachoSoto )
Integration Tests
: removed @preconcurrency import
(#2464 ) via NachoSoto (@NachoSoto )
Clean up: moved ReceiptParserTests-Info.plist
out of root (#2460 ) via NachoSoto (@NachoSoto )
Update CHANGELOG
(#2461 ) via NachoSoto (@NachoSoto )
Update SwiftSnapshotTesting
(#2453 ) via NachoSoto (@NachoSoto )
Fixed docs (#2432 ) via Kaunteya Suryawanshi (@kaunteya )
Remove unnecessary line break (#2435 ) via Andy Boedo (@aboedo )
ProductEntitlementMapping
: enabled entitlement mapping fetching (#2425 ) via NachoSoto (@NachoSoto )
BackendPostReceiptDataTests
: increased timeout to fix flaky test (#2426 ) via NachoSoto (@NachoSoto )
Updated requirements to drop Xcode 13.x support (#2419 ) via NachoSoto (@NachoSoto )
Integration Tests
: fixed flaky errors when loading offerings (#2420 ) via NachoSoto (@NachoSoto )
PurchaseTester
: fixed compilation for internal
entitlement verification (#2417 ) via NachoSoto (@NachoSoto )
ETagManager
/HTTPClient
: sending new X-RC-Last-Refresh-Time
header (#2373 ) via NachoSoto (@NachoSoto )
ETagManager
: don't send validation time if not present (#2490 ) via NachoSoto (@NachoSoto )
SwiftUI Sample Project: Refactor Package terms method to a computed property (#2405 ) via Joseph Kokenge (@JOyo246 )
Clean up v3 load shedder integration tests (#2402 ) via Andy Boedo (@aboedo )
Fix iOS 12 compilation (#2394 ) via NachoSoto (@NachoSoto )
Added new VerificationResult.verifiedOnDevice
(#2379 ) via NachoSoto (@NachoSoto )
PurchaseTester
: fix memory leaks (#2392 ) via Keita Watanabe (@kitwtnb )
Integration tests: add scheduled job (#2389 ) via Andy Boedo (@aboedo )
Add lane for running iOS v3 load shedder integration tests (#2388 ) via Andy Boedo (@aboedo )
iOS v3 load shedder integration tests (#2387 ) via Andy Boedo (@aboedo )
Offline Entitlements
: created LoadShedderIntegrationTests
(#2362 ) via NachoSoto (@NachoSoto )
Purchases.configure: log warning if attempting to use a static appUserID (#2385 ) via Mark Villacampa (@MarkVillacampa )
SubscriberAttributesManagerIntegrationTests
: fixed flaky failures (#2381 ) via NachoSoto (@NachoSoto )
@DefaultDecodable.Now
: fixed flaky test (#2374 ) via NachoSoto (@NachoSoto )
PurchaseTesterSwiftUI
: fixed iOS compilation (#2376 ) via NachoSoto (@NachoSoto )
SubscriberAttributesManagerIntegrationTests
: fixed potential race condition (#2380 ) via NachoSoto (@NachoSoto )
Offline Entitlements
: create CustomerInfo
from offline entitlements (#2358 ) via NachoSoto (@NachoSoto )
Added @DefaultDecodable.Now
(#2372 ) via NachoSoto (@NachoSoto )
HTTPClient
: debug log when performing redirects (#2371 ) via NachoSoto (@NachoSoto )
HTTPClient
: new flag to force server errors (#2370 ) via NachoSoto (@NachoSoto )
OfferingsManager
: fixed Xcode 13.x build (#2369 ) via NachoSoto (@NachoSoto )
Offline Entitlements
: store ProductEntitlementMapping
in cache (#2355 ) via NachoSoto (@NachoSoto )
Offline Entitlements
: added support for fetching ProductEntitlementMappingResponse
in OfflineEntitlementsAPI
(#2353 ) via NachoSoto (@NachoSoto )
Offline Entitlements
: created ProductEntitlementMapping
(#2365 ) via NachoSoto (@NachoSoto )
Implemented NetworkError.isServerDown
(#2367 ) via NachoSoto (@NachoSoto )
ETagManager
: added test for 304 responses with no etag (#2360 ) via NachoSoto (@NachoSoto )
TestLogHandler
: increased default capacity (#2357 ) via NachoSoto (@NachoSoto )
OfferingsManager
: moved log to common method to remove hardcoded string (#2363 ) via NachoSoto (@NachoSoto )
Offline Entitlements
: created ProductEntitlementMappingResponse
(#2351 ) via NachoSoto (@NachoSoto )
HTTPClient
: added test for 2xx response for request with etag (#2361 ) via NachoSoto (@NachoSoto )
PurchaseTesterSwiftUI
improvements (#2345 ) via NachoSoto (@NachoSoto )
ConfigureStrings
: fixed double-space typo (#2344 ) via NachoSoto (@NachoSoto )
ETagManagerTests
: fixed tests on iOS 12 (#2349 ) via NachoSoto (@NachoSoto )
DeviceCache
: simplified constructor (#2354 ) via NachoSoto (@NachoSoto )
Trusted Entitlements
: changed all APIs to internal
(#2350 ) via NachoSoto (@NachoSoto )
VerificationResult.notRequested
: removed caching reference (#2337 ) via NachoSoto (@NachoSoto )
Finished signature verification HTTPClient
tests (#2333 ) via NachoSoto (@NachoSoto )
Configuration.Builder.with(entitlementVerificationMode:)
: improved documentation (#2334 ) via NachoSoto (@NachoSoto )
ETagManager
: don't ignore failed etags with Signing.VerificationMode.informational
(#2331 ) via NachoSoto (@NachoSoto )
IdentityManager
: clear ETagManager
and DeviceCache
if verification is enabled but cached CustomerInfo
is not (#2330 ) via NachoSoto (@NachoSoto )
Made Configuration.EntitlementVerificationMode.enforced
unavailable (#2329 ) via NachoSoto (@NachoSoto )
Refactor: reorganized files in new Security and Misc folders (#2326 ) via NachoSoto (@NachoSoto )
CustomerInfo
: use same grace period logic for active subscriptions (#2327 ) via NachoSoto (@NachoSoto )
HTTPClient
: don't verify 4xx/5xx responses (#2322 ) via NachoSoto (@NachoSoto )
EntitlementInfo
: request date is not optional (#2325 ) via NachoSoto (@NachoSoto )
CustomerInfo
: removed entitlementVerification
(#2320 ) via NachoSoto (@NachoSoto )
Renamed VerificationResult.notVerified
to .notRequested
(#2321 ) via NachoSoto (@NachoSoto )
EntitlementInfo
: add a grace period limit to outdated entitlements (#2288 ) via NachoSoto (@NachoSoto )
Update CustomerInfo.requestDate
from 304 responses (#2310 ) via NachoSoto (@NachoSoto )
Signing
: added request time & eTag to signature verification (#2309 ) via NachoSoto (@NachoSoto )
HTTPClient
: changed header search to be case-insensitive (#2308 ) via NachoSoto (@NachoSoto )
HTTPClient
: automatically add nonce
based on HTTPRequest.Path
(#2286 ) via NachoSoto (@NachoSoto )
PurchaseTester
: added ability to reload CustomerInfo
with a custom CacheFetchPolicy
(#2312 ) via NachoSoto (@NachoSoto )
Fix issue where underlying error information for product fetch errors was not printed in log. (#2281 ) via Chris Vasselli (@chrisvasselli )
PurchaseTester
: added ability to set Configuration.EntitlementVerificationMode
(#2290 ) via NachoSoto (@NachoSoto )
SwiftUI: Paywall View should respond to changes on the UserView model (#2297 ) via ConfusedVorlon (@ConfusedVorlon )
Deprecate usesStoreKit2IfAvailable
(#2293 ) via Andy Boedo (@aboedo )
Signing
: updated to use production public key (#2274 ) via NachoSoto (@NachoSoto )
You can’t perform that action at this time.