Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PostReceiptOperation: added ability to also post AdServices token #2566

Merged
merged 1 commit into from
May 31, 2023

Conversation

NachoSoto
Copy link
Contributor

@NachoSoto NachoSoto commented May 30, 2023

Cherry-picked #2549 post refactors (#2540 and #2542). This becomes a lot simpler since #2542, thanks to the fact that we can put this new parameter in PurchasedTransactionData.

Changes:

  • Added aadAttributionToken to PurchasedTransactionData
  • Exposed AttributionPoster.adServicesTokenToPostIfNeeded
  • Added snapshot test to verify it's sent
  • Added PurchasesOrchestrator tests (SK1/SK2) for sending the attribution token
  • Added missing PurchasesOrchestrator tests for sending attributes
  • Added log when marking AdServices token as synced
  • Exposed Purchases.attribution for custom entitlement computation framework (and added to API tester)
  • Exposed Purchases.enableAdServicesAttributionTokenCollection for custom entitlement computation framework (and added to API tester)

@NachoSoto NachoSoto requested a review from a team May 30, 2023 21:02
@NachoSoto NachoSoto force-pushed the post-ad-services-token-purchase branch from 43a1244 to 0eeee13 Compare May 30, 2023 21:08
- Added `aadAttributionToken` to `PostReceiptDataOperation`
- Exposed `AttributionPoster.adServicesTokenToPostIfNeeded`
- Added snapshot test to verify it's sent
- Added `PurchasesOrchestrator` tests (SK1/SK2) for sending the attribution token
- Added missing `PurchasesOrchestrator` tests for sending attributes
- Added log when marking `AdServices` token as synced
- Exposed `Purchases.attribution` for custom entitlement computation framework (and added to API tester)
- Exposed `Purchases.enableAdServicesAttributionTokenCollection`  for custom entitlement computation framework (and added to API tester)
@NachoSoto NachoSoto force-pushed the post-ad-services-token-purchase branch from 0eeee13 to 223f9a9 Compare May 30, 2023 21:09
@NachoSoto NachoSoto marked this pull request as ready for review May 30, 2023 21:11
@codecov
Copy link

codecov bot commented May 30, 2023

Codecov Report

Merging #2566 (223f9a9) into main (81a867a) will increase coverage by 0.01%.
The diff coverage is 98.64%.

@@            Coverage Diff             @@
##             main    #2566      +/-   ##
==========================================
+ Coverage   87.97%   87.98%   +0.01%     
==========================================
  Files         201      201              
  Lines       13938    13993      +55     
==========================================
+ Hits        12262    12312      +50     
- Misses       1676     1681       +5     
Impacted Files Coverage Δ
...urces/Purchasing/Purchases/TransactionPoster.swift 100.00% <ø> (ø)
Sources/Attribution/AttributionPoster.swift 93.29% <96.15%> (+0.07%) ⬆️
Sources/Logging/Strings/AttributionStrings.swift 86.13% <100.00%> (+0.42%) ⬆️
...tworking/Operations/PostReceiptDataOperation.swift 92.02% <100.00%> (+0.17%) ⬆️
Sources/Purchasing/Purchases/Attribution.swift 93.44% <100.00%> (+5.82%) ⬆️
Sources/Purchasing/Purchases/Purchases.swift 77.56% <100.00%> (-0.03%) ⬇️
...s/Purchasing/Purchases/PurchasesOrchestrator.swift 85.58% <100.00%> (+0.27%) ⬆️

... and 4 files with indirect coverage changes

@NachoSoto NachoSoto merged commit a18d3b4 into main May 31, 2023
@NachoSoto NachoSoto deleted the post-ad-services-token-purchase branch May 31, 2023 17:03
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