Skip to content

[iOS] Migrate away from StoreKit 1 APIs for VPN - #39897

Open
kylehickinson wants to merge 2 commits into
masterfrom
ios-vpn-storekit-migration
Open

kylehickinson wants to merge 2 commits into
masterfrom
ios-vpn-storekit-migration

Conversation

@kylehickinson

Copy link
Copy Markdown
Collaborator

This replaces most of the deprecated StoreKit APIs being used in Brave VPN with their StoreKit 2 alternatives, with the exception of receipt data because the GuardianConnect SDK still uses the deprecated receipt format.

@kylehickinson
kylehickinson requested a review from a team September 15, 2026 18:46
@kylehickinson kylehickinson self-assigned this Sep 15, 2026
@kylehickinson kylehickinson added CI/skip-android Do not run CI builds for Android CI/skip-windows-x64 Do not run CI builds for Windows x64 CI/skip-macos-arm64 Do not run CI builds for macOS arm64 CI/skip-origin Do not run CI builds for Origin labels Sep 15, 2026
@kylehickinson
kylehickinson force-pushed the ios-vpn-storekit-migration branch from 5b90b08 to b445018 Compare September 15, 2026 18:54
@github-actions

Copy link
Copy Markdown
Contributor

Chromium major version is behind target branch (153.0.8010.37 vs 154.0.8037.41). Please rebase.

@github-actions github-actions Bot added the chromium-version-mismatch The Chromium version on the PR branch does not match the version on the target branch label Sep 16, 2026
@kylehickinson
kylehickinson force-pushed the ios-vpn-storekit-migration branch from b445018 to b9507c7 Compare September 16, 2026 14:16
@github-actions github-actions Bot removed the chromium-version-mismatch The Chromium version on the PR branch does not match the version on the target branch label Sep 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

[puLL-Merge] - brave/brave-core@39897

Description

Migrates Brave VPN in-app purchase flow from StoreKit 1 (SKPaymentQueue/SKProduct/SKReceiptRefreshRequest) to StoreKit 2 (Product, Transaction.updates, PurchaseIntent.intents, AppStore.sync(), AppTransaction). Observer registration is now implicit via lazy init of BraveVPN.iapObserver; receipt access is centralized in BraveStore.AppStoreReceipt; the legacy AppStoreTransactionRestorer and BraveVPNMockSKProduct are deleted.

Possible Issues

  • Data races on BraveVPNInAppPurchaseObserver state. Class is not act

This replaces most of the deprecated StoreKit APIs being used in Brave VPN with their StoreKit 2 alternatives, with the exception of receipt data because the GuardianConnect SDK still uses the deprecated receipt format.
@kylehickinson
kylehickinson force-pushed the ios-vpn-storekit-migration branch from 766bc10 to df3c659 Compare September 16, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/skip-android Do not run CI builds for Android CI/skip-macos-arm64 Do not run CI builds for macOS arm64 CI/skip-origin Do not run CI builds for Origin CI/skip-windows-x64 Do not run CI builds for Windows x64 puLL-Merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate VPN away from deprecated StoreKit APIs

3 participants