Skip to content

PurchasedProductsFetcher: don't throw errors if purchased products were found#2506

Merged
NachoSoto merged 2 commits into
mainfrom
purchased-product-fetcher-cache
May 19, 2023
Merged

PurchasedProductsFetcher: don't throw errors if purchased products were found#2506
NachoSoto merged 2 commits into
mainfrom
purchased-product-fetcher-cache

Conversation

@NachoSoto

Copy link
Copy Markdown
Contributor

This is a best-effort implementation. We can still compute the offline CustomerInfo if we found some purchased products.
Extracted from #2368 and added tests.

@NachoSoto NachoSoto requested a review from a team May 18, 2023 20:35
@NachoSoto NachoSoto force-pushed the purchased-product-fetcher-cache branch 2 times, most recently from 59a5880 to 02e4b55 Compare May 18, 2023 20:44
@codecov

codecov Bot commented May 18, 2023

Copy link
Copy Markdown

Codecov Report

Merging #2506 (aca8339) into main (e4f6c99) will increase coverage by 0.14%.
The diff coverage is 94.51%.

❗ Current head aca8339 differs from pull request most recent head ffb1bcf. Consider uploading reports for the commit ffb1bcf to get more accurate results

@@            Coverage Diff             @@
##             main    #2506      +/-   ##
==========================================
+ Coverage   87.68%   87.83%   +0.14%     
==========================================
  Files         197      197              
  Lines       13327    13439     +112     
==========================================
+ Hits        11686    11804     +118     
+ Misses       1641     1635       -6     
Impacted Files Coverage Δ
...urces/Networking/Responses/OfferingsResponse.swift 100.00% <ø> (ø)
...ntitlements/CustomerInfo+OfflineEntitlements.swift 92.98% <ø> (+1.75%) ⬆️
Sources/Caching/DeviceCache.swift 94.03% <82.14%> (-0.93%) ⬇️
Sources/Identity/CustomerInfoManager.swift 94.28% <91.66%> (+0.01%) ⬆️
Sources/Purchasing/OfferingsManager.swift 93.08% <97.10%> (+5.33%) ⬆️
Sources/Logging/Strings/CustomerInfoStrings.swift 93.02% <100.00%> (+0.34%) ⬆️
Sources/Logging/Strings/OfferingStrings.swift 94.33% <100.00%> (+1.33%) ⬆️
Sources/Misc/SystemInfo.swift 98.29% <100.00%> (ø)
...OfflineEntitlements/PurchasedProductsFetcher.swift 89.18% <100.00%> (+4.57%) ⬆️
Sources/Purchasing/Offerings.swift 93.10% <100.00%> (+0.24%) ⬆️
... and 2 more

... and 1 file with indirect coverage changes

@NachoSoto NachoSoto force-pushed the purchased-product-fetcher-cache branch from 02e4b55 to aca8339 Compare May 18, 2023 21:12

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be appStoreSync, same as in the other places?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My thinking is that the closure is a noun "App Store sync closure", versus this is an action / verb: "sync App Store".
Let me know if that's confusing though.

Comment thread Sources/OfflineEntitlements/PurchasedProductsFetcher.swift Outdated
NachoSoto added 2 commits May 19, 2023 11:00
…were found

This is a best-effort implementation. We can still compute the offline `CustomerInfo` if we found some purchased products.
Extracted from #2368 and added tests.
@NachoSoto NachoSoto force-pushed the purchased-product-fetcher-cache branch from aca8339 to ffb1bcf Compare May 19, 2023 18:11
@NachoSoto NachoSoto enabled auto-merge (squash) May 19, 2023 18:11
@NachoSoto NachoSoto disabled auto-merge May 19, 2023 18:12
@NachoSoto NachoSoto enabled auto-merge (squash) May 19, 2023 18:12
@NachoSoto NachoSoto merged commit c0c6893 into main May 19, 2023
@NachoSoto NachoSoto deleted the purchased-product-fetcher-cache branch May 19, 2023 18:46
This was referenced May 31, 2023
@NachoSoto NachoSoto mentioned this pull request May 31, 2023
NachoSoto added a commit that referenced this pull request Jun 1, 2023
**This is an automatic release.**

### New Features
* `Offline Entitlements`: use offline-computed `CustomerInfo` 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 post `AdServices` 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 for `getAndCacheCustomerInfo` to
finish (#2555) via NachoSoto (@NachoSoto)
* `StoreTransaction`: implemented `description` (#2556) via NachoSoto
(@NachoSoto)
* `Backend.ResponseHandler` is now `@Sendable` (#2541) via NachoSoto
(@NachoSoto)
* Extracted `TransactionPoster` from `PurchasesOrchestrator` (#2540) via
NachoSoto (@NachoSoto)
* `enableAdServicesAttributionTokenCollection`: added integration test
(#2551) via NachoSoto (@NachoSoto)
* `AttributionPoster`: replaced hardcoded strings with constants (#2548)
via NachoSoto (@NachoSoto)
* `DefaultDecodable`: moved to `Misc/Codable/DefaultDecodable.swift`
(#2528) via NachoSoto (@NachoSoto)
* `CircleCI`: specify device to run `backend_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 offline `CustomerInfo` when
purchasing a consumable products (#2522) via NachoSoto (@NachoSoto)
* `OfflineEntitlementsManager`: disable offline `CustomerInfo` in
observer mode (#2520) via NachoSoto (@NachoSoto)
* `BasePurchasesTests`: fixed leak detection (#2534) via NachoSoto
(@NachoSoto)
* `PurchaseTesterSwiftUI`: added `ProxyView` to `iOS` (#2531) via
NachoSoto (@NachoSoto)
* `PurchasedProductsFetcher`: removed `AppStore.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 offline `CustomerInfo` with
empty `ProductEntitlementMapping` (#2504) via NachoSoto (@NachoSoto)
* `Offline Entitlements`: integration tests (#2501) via NachoSoto
(@NachoSoto)
* `CustomerInfoManager`: don't cache offline `CustomerInfo` (#2378) via
NachoSoto (@NachoSoto)
* `DangerousSettings`: debug-only `forceServerErrors` (#2486) via
NachoSoto (@NachoSoto)
* `CocoapodsInstallation`: fixed `Xcode 14.3.0` issue (#2489) via
NachoSoto (@NachoSoto)
* `CarthageInstallation`: removed workaround (#2488) via NachoSoto
(@NachoSoto)

---------

Co-authored-by: NachoSoto <ignaciosoto90@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants