Skip to content

docs(ios): document v6 removal of *View factories + ply/products/ply/plans deeplinks#16

Open
kherembourg wants to merge 2 commits into
mainfrom
docs/v6-remove-view-and-product-plan-deeplinks
Open

docs(ios): document v6 removal of *View factories + ply/products/ply/plans deeplinks#16
kherembourg wants to merge 2 commits into
mainfrom
docs/v6-remove-view-and-product-plan-deeplinks

Conversation

@kherembourg

@kherembourg kherembourg commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

What & why

The iOS SDK (PR #653) removed two more surfaces on the way to v6:

  1. The SwiftUI embedded-view factoriesPurchasely.productView(...) / planView(...) / presentationView(...) (the SwiftUI counterpart to the already-removed UIKit *Controller factories), which still carried the legacy (PLYProductViewControllerResult, PLYPlan?) completion block.
  2. The ply/products/* and ply/plans/* deeplink formats (and the internal productController factory that served them).

This PR updates the plugin's iOS references and skills so they recognize, flag, and migrate both.

Changes

  • references/ios/migration-v6.md — summary-table rows for the *View factories and the removed deeplinks; §3 / §5 now name the SwiftUI factories alongside the UIKit ones; a new "Product / plan deeplinks removed (breaking)" subsection; two checklist items; the verify-grep gains productController|planController|productView|planView|presentationView|ply/products|ply/plans.
  • references/ios/v5-api-reference.md — recognition tokens, a SwiftUI-factory removal entry, and a deeplink-format removal entry.
  • purchasely-migrate — iOS recognition tokens + the embedded-UI / deeplinks steps.
  • purchasely-review — removed-API pattern lists and the "No removed / deprecated APIs" check now list the full *View / *Controller families and the removed deeplink formats. Also dropped the non-existent presentationViewControllerFor token.
  • purchasely-sdk-expert — removed-API list.
  • CHANGELOG.md[Unreleased] entry.

Replacement guidance documented

Removed Use instead
productView / planView / presentationView PLYPresentationBuilder.…build().preload { … }presentation.swiftUIView
ply/products/* / ply/plans/* ply/presentations/<id> or ply/placements/<id>

Verification

  • node scripts/guard-known-bad-snippets.mjspassed.
  • No removed API is presented as valid v6 in references/ios/api-reference.md (0 hits).

🤖 Generated with Claude Code


Also in this PR — fix the iOS default presentation handler

iOS v6 renamed setDefaultPresentationResultHandler { result, plan in }setDefaultPresentationDismissHandler { outcome in } (now delivers PLYPresentationOutcome, mutually exclusive with per-presentation onDismissed). The plugin still documented the old name as a valid v6 API (references/ios/api-reference.md) and listed it under "unchanged in v6" (references/ios/v5-api-reference.md). Fixed both, plus the purchasely-migrate / purchasely-review / purchasely-debug skills.

Platform-aware: Android v6 keeps the setDefaultPresentationResultHandler name and only changes the callback to a single outcome (verified against Android/MIGRATION_V6.md), so the cross-platform skills no longer imply the iOS rename applies to Android.

Platform v6 default handler
iOS setDefaultPresentationDismissHandler { outcome in } (renamed)
Android setDefaultPresentationResultHandler { outcome -> } (name kept, callback now single outcome)

…plans deeplinks

The iOS SDK removed the SwiftUI embedded-view factories
(productView/planView/presentationView) and the ply/products/* &
ply/plans/* deeplink formats. Reflect both across the iOS references and
the skills:

- references/ios/migration-v6.md: summary-table rows, §3/§5 method lists,
  a new "product/plan deeplinks removed" subsection, checklist items, and
  the verify grep.
- references/ios/v5-api-reference.md: recognition tokens, a SwiftUI-factory
  removal entry, and a deeplink-format removal entry.
- purchasely-migrate: iOS recognition tokens + embedded-UI / deeplink steps.
- purchasely-review: removed-API pattern lists + the "no removed APIs" check
  (now lists the full *View/*Controller families and the removed deeplink
  formats; dropped the bogus `presentationViewControllerFor`).
- purchasely-sdk-expert: removed-API list.
- CHANGELOG: Unreleased entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Jun 19, 2026

Copy link
Copy Markdown

Greptile encountered an error while reviewing this PR. Please reach out to support@greptile.com for assistance.

iOS v6 renamed setDefaultPresentationResultHandler { result, plan in } to
setDefaultPresentationDismissHandler { outcome in } (delivers
PLYPresentationOutcome, mutually exclusive with per-presentation onDismissed).

- references/ios/api-reference.md: documented the OLD name as a valid v6 API —
  rewritten to the renamed handler + PLYPresentationOutcome.
- references/ios/v5-api-reference.md: it was listed under "unchanged in v6" —
  moved to a renamed entry.
- purchasely-migrate: added the rename to the iOS grep tokens + step 9.
- purchasely-review / purchasely-debug: handler checks now name the iOS v6
  method.

Platform-aware: Android v6 KEEPS the name setDefaultPresentationResultHandler
and only changes the callback to a single `outcome`, so the cross-platform
skills no longer imply the iOS rename applies to Android.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.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.

1 participant