mirror of
https://github.com/RevenueCat/purchases-ios
synced 2026-11-10 22:45:55 +05:45
* refactor(ads): move rewardverification to coresdk * refactor(ads): move rewardverification to coresdk * refactor(ads): move rewardverification to coresdk * refactor(ads): remove unnecessary comment * fix(ads): linter and behavior fixes * fix(ads): gate reward-verification VC cache invalidation out of CustomEntitlementComputation * refactor(ads): rename reward-verification transactionId → clientTransactionID * fix(ads): remove duplicated SSV payload logic from AdMob adapter * chore(ads): cover install via injectable * chore(ads): fix linter * refactor(ads): introduce RewardVerificationToken * refactor(ads): add reward_verification_completed log * Update AdapterSDKs/RevenueCatAdMob/Tests/RevenueCatAdMobTests/PresentRewardVerificationTests.swift Co-authored-by: Antonio Pallares <ajpallares@users.noreply.github.com> * fix(ads): linter * fix(ads): key reward verification poll retries on HTTP status Retry network/offline transport errors and any HTTP 5xx during reward verification polling, keying on the HTTP status code rather than the mapped ErrorCode. Empty/unparseable 5xx responses are now retried, and 4xx client errors fail fast as .backendError instead of being retried to a misleading .timeout. * refactor(ads): drop redundant comments on poll retry classifier * refactor(ads): read poll HTTP status via typed NSError accessor * refactor(ads): reuse SDK retry classification for poll errors Classify reward-verification poll retries from the structured BackendError instead of re-deriving the HTTP status from a flattened public NSError. Adds a reusable NetworkError.isTransient (5xx and connection-level failures are transient, 4xx are terminal) and forwards it from BackendError; the HTTPClient fallback-host retry check now delegates to it. The poll path keeps the structured BackendError via an internal fetchRewardVerificationStatus, letting the poller reuse BackendError.isTransient and dropping the bespoke NSError.httpStatusCode accessor. Co-authored-by: Cursor <cursoragent@cursor.com> * chore(ads): switch from experimental to internal * docs(ads): reference BackendError in Poller doc comment --------- Co-authored-by: Peter Porfy <peter.porfy@revenuecat.com> Co-authored-by: Pol Miro <polmiro@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>