Separate iOS build specification

iOS Subscription Management IPRD

Decision

Add a permanent Profile/Settings → Plan & Billing destination. Version 1 should use Apple’s native subscription-management sheet for active App Store subscribers and the existing RevenueCat plan comparison/paywall for Free users. RevenueCat Customer Center is the branded upgrade path if the current RevenueCat plan supports it.

Objective and scope

Give every user one trustworthy place to understand their effective plan, usage, renewal or expiry, and subscription actions. This IPRD covers navigation, screen states, upgrades, downgrades, billing-cadence changes, cancellation handoff, restore, complimentary access, delayed backend activation, analytics, and QA. It does not redesign the acquisition paywall or admin grandfathering.

Entry points and navigation

Plan & billing states

User statePrimary informationPrimary actionSecondary actions
FreeFree plan; 1 recurring credit/week; 3 one-time credits/3 days; next resetsView Plus & ProRestore Purchases
Plus trialPlus trial; exact end/renewal; 1 recurring credit maximum during trialManage SubscriptionCompare Pro, Restore, trial reminder
Paid PlusProduct cadence, renewal date/price, 2 recurring credits/weekChange or Manage PlanUpgrade to Pro, Restore
Paid ProProduct cadence, renewal date/price, 5 recurring credits/weekChange or Manage PlanRestore
Canceled but activeAccess remains until expiry; renewal offManage / ResubscribeRestore
Grace or billing retryBilling issue without overstating loss of accessFix Payment / ManageHelp
Grandfathered onlyComplimentary Plus/Pro, campaign reason where appropriate, exact expiry/permanentView paid plansContact support
Paid + grandfatheredEffective higher plan and both access sourcesManage store subscriptionView complimentary expiry
Pending plan changeCurrent plan plus “changes to X on [date]”Manage SubscriptionRefresh status

Screen requirements

Plan & Billing overview

Plan comparison for Free or complimentary-only users

Change and management flows

  1. User opens Plan & Billing; iOS refreshes server access and RevenueCat customer information.
  2. Free user taps View Plans and receives the plan comparison/purchase flow.
  3. Active App Store subscriber taps Change or Manage Subscription.
  4. Version 1 presents Apple’s native manage-subscriptions sheet. If RevenueCat Customer Center is adopted, present its Change Plans path instead.
  5. User confirms upgrade, downgrade, crossgrade, cadence change, cancellation, or no change in Apple UI.
  6. On sheet dismissal and next foreground, refresh RevenueCat and backend. Show pending state if the change is scheduled.
  7. Only the backend’s effective access response changes feature gates. Never infer the tier merely because the management sheet closed.

Upgrade and downgrade timing

ChangeExpected Apple behaviorApp behavior
Plus → Pro upgradeNormally immediate with prorated handlingShow activating state, then unlock Pro only after confirmed active entitlement
Pro → Plus downgradeNormally effective next renewalKeep Pro until effective date and show scheduled Plus
Same-tier, same-duration crossgradeNormally immediateRefresh product/cadence and preserve the correct quota window
Different-duration crossgradeNormally next renewalShow pending cadence and keep current product until effective
Cancel auto-renewAccess continues through paid expiryShow canceled-active; do not downgrade early
Upgrade during free trialMay temporarily produce two active products in the groupResolve highest effective tier, deduplicate quota grants, and test explicitly

Recommended implementation

Version 1 — recommended

Native SwiftUI manageSubscriptionsSheet or StoreKit manage sheet. Lowest dependency, Apple-owned change/cancel UI.

Version 2 — optional

RevenueCat Customer Center for branded plan changes, cancel/refund paths, restore, support, and retention prompts.

Fallback

RevenueCat managementURL when native presentation is unavailable or the original purchase belongs to another supported store.

Backend and RevenueCat contract

Error and edge states

Analytics

Acceptance and QA checklist

Official references