Paywall placements · simulator QA · updated 2026-07-20

Paywall Placements — Simulator QA

All 9 placements captured on the iPhone 17 Pro simulator by the committed PaywallScreenshotTests harness — 9/9 passed. Sheet sizing is now per-placement (commit 75af88fe): full decision moments take the whole screen; contextual gates open shorter (still draggable to full, content scrolls, sticky CTA always visible).

On-screen sizing — now 3-way by placement style: Full (.large) onboarding · plan & billing · locked episode · second show   Medium (0.8) document · cadence · pro sources   Compact (0.65) generation · remix. Each opens at its intended size and can be dragged up to full.

Every placement (rendered on the simulator)

Debug vs TestFlight: renders fully in Debug (bundled StoreKit); on TestFlight/sandbox the paywall needs a minimal RevenueCat default offering for prices. Enforcement stays OFF — tests where paywalls appear, not payments. Compact (0.65) action gates intentionally leave the create screen visible behind; say the word if you'd prefer them taller.

Harness: LissinAppUITests/PaywallScreenshotTests (#309). Detent mapping in PaywallView.swift. Build 126 IPA ready for TestFlight.