Skip to content

Conversation

@RafaelKayumov
Copy link
Contributor

@RafaelKayumov RafaelKayumov commented Dec 12, 2025

Temporary: Will re-create this PR targeting the 23.8.1 hotfix.

WOOMOB-1862

Description

  • Integrate Apple’s Declared Age Range API flow (iOS 26+) and hook it into app entry points:
    • Runs on login and after the main UI is shown for already-authenticated users.
    • Presents a SwiftUI blocking screen for underage/declined cases; CTA logs out and returns to login.
    • Age verification service/coordinator lives in ServiceLocator; AppCoordinator triggers and handles blocking.
  • Added SwiftUI blocker (AgeGateBlockedHostingController) for “too young” / “consent revoked” states.
  • Declared Age capability/entitlement is already wired; code now uses the centralized service.

Test Steps

Age range data access declined [any age] -> no blocker

  • Use iOS 26 device
  • Have the app in logged in state
  • Launch the app and make sure the system age verification dialogue is displayed
  • Refuse from sharing
  • Make sure dialogue disappears and app works as usual

Age range data access provided [13+] -> no blocker

  • Use iOS 26 device
  • Have the app in logged in state
  • Use Apple account with 13+ age
  • Launch the app and make sure the system age verification dialogue is displayed
  • Provide access
  • Make sure dialogue disappears and app works as usual

Age range data access provided -> [under 13] -> blocker UI

  • Use iOS 26 device
  • Have the app in logged in state
  • Use Apple account with age below 13
  • Launch the app
  • Make sure the system age verification dialogue is displayed (if age range wasn't shared before)
  • Provide access
  • The blocking overlay should display
  • Tap on blocking UI CTA and make sure to be navigated to start(logged off) screen

[under 13][logged out] Age range data access provided -> blocker UI

  • Use iOS 26 device
  • Have the app in logged OUT state
  • Use Apple account with age below 13
  • Launch the app
  • Start authentication
  • Make sure the system age verification dialogue is displayed (if age range wasn't shared before)
  • Provide access
  • The blocking overlay should display
  • Tap on blocking UI CTA and make sure to be taken back to the start(logged off) screen.

[under 13][logged out][iOS 18] SDK not supported -> no blockers

  • Use iOS 18 device (any non-iOS 26 device)
  • Use apple account with an age below 13
  • Smoke the app - both logged in and logged out state
  • Since we don't have the SDK working here - there should be no blockers even for underage accounts.

Screenshots

TBD


  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

@RafaelKayumov RafaelKayumov added type: task An internally driven task. status: do not merge Dependent on another PR, ready for review but not ready for merge. labels Dec 12, 2025
@dangermattic
Copy link
Collaborator

dangermattic commented Dec 12, 2025

1 Warning
⚠️ This PR is larger than 300 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.
1 Message
📖 This PR is still a Draft: some checks will be skipped.

Generated by 🚫 Danger

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: do not merge Dependent on another PR, ready for review but not ready for merge. type: task An internally driven task.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants