A paywall is the screen in an app that asks people to buy a subscription or the full version. Under Apple's rules as of October 16, 2026, it needs the subscription name, length and price, what people get for the money, links to the terms and privacy policy, and a way to restore purchases, and a subscription can't be shorter than 7 days.
What a paywall is
A paywall in an app is the screen that asks people to buy a subscription or the full version. It holds the purchase options, prices, a buy button and the required lines of terms. Apple processes the payment, and after the tap the system shows its own confirmation sheet, which you can't change or imitate.
A hard paywall blocks the app until someone pays, a soft one can be closed, and a metered one appears once the free uses run out. The Human Interface Guidelines name a freemium tier, a metered paywall and a free trial as ways to let people try the app before they pay.
Where the paywall lives in App Store Connect and Xcode
The screen lives in your app's code, and the products it sells are set up in App Store Connect. Subscriptions sit under App Store Connect › Apps › your app › Subscriptions, with the group, durations, prices by country and the trial. One-time purchases are next door in In-App Purchases (in-app purchase).
In Xcode, the StoreKit framework gives you a ready-made paywall, whose SwiftUI views Apple introduced at WWDC23 in 2023 (Apple video). SubscriptionStoreView works on iOS 17.0 and later, loads subscription names, descriptions and prices from the App Store, and shows terms, privacy and Close buttons. Modifiers set the background and control style.
What Apple requires on a subscription screen
| Source of the rule | What the screen needs |
|---|---|
| App Review Guideline 3.1.2(a) | a subscription period of at least 7 days that works on all of the person's devices |
| App Review Guideline 3.1.2(c) | a clear description of what the person gets for the price, before they subscribe |
| License Agreement, Schedule 2, section 3.8(b) | subscription title, length, price and price per unit where it applies, links to the privacy policy and terms of use |
| Apple's subscriptions page | the amount that will be billed as the most prominent price, with any weekly or monthly breakdown smaller |
| Same page | for a free trial, its length and the price after it ends |
| Same page | a way for current subscribers to sign in or restore purchases |
| App Store Connect | durations of 1 week, 1, 2, 3 or 6 months, or 1 year |
Per the App Review Guidelines (updated June 8, 2026), the License Agreement, Apple's subscriptions page and App Store Connect Help, checked October 16, 2026.
A weekly plan is paid 52 times a year, a monthly one 12 times and a yearly one once. On a yearly plan Apple requires the yearly total to be the most prominent price, with any per-week figure smaller.
How to build a paywall, step by step
- Create a subscription group and its subscriptions in App Store Connect, then pick durations and prices.
- Decide where the screen appears, at the end of onboarding, when someone opens a paid feature, or in settings.
- Use SubscriptionStoreView or build your own screen on StoreKit products.
- Add a restore purchases button, which in SubscriptionStoreView is the restorePurchases button shown through the storeButton modifier.
- Put the amount and period above the buy button, and for a trial its length and the price after it.
- Check the screen in every language and in the sandbox, with prices coming from the App Store in local currency.
Where the paywall goes in onboarding
Apple gives two pieces of advice, and they fit together. The HIG on subscriptions suggests showing subscription benefits during onboarding, with a clear call to action and a short summary of the terms (HIG). The HIG on onboarding suggests letting people try the app before asking for a rating or a purchase (HIG, onboarding).
A common pattern in subscription apps is the paywall as the last onboarding screen, once people have answered a few questions and understand what they'll get. It can be closed and comes back at a paid feature. Apple also suggests a way to subscribe in the app's settings.
Common mistakes
- A big per-week price on a yearly plan. It runs straight against the billed-amount rule. The App Review Guidelines as updated on June 8, 2026, also say apps that trick people into a subscription are removed from the App Store.
- No restore purchases button. Someone who already paid sees only a buy button on their new iPhone and thinks they have to pay again.
- Terms and privacy links only on your website. They have to be reachable inside the app as well as in the App Store metadata.
- A free trial without the price after it. People need to know that a charge follows the trial, and how much it is.
- Showing the paywall to subscribers. They'll think their subscription has lapsed, and Apple advises against it.
Appto builds onboarding and the purchase screen in several variants and counts how many people reach the end and which paywall sells more often, more on the onboarding and paywalls page.
Questions
What makes a good paywall design for iOS?
One clear billed amount in the largest type, the period next to it, what the subscription includes, a restore button and links to the terms and privacy policy. Everything else is your app's own style.
What is the minimum subscription length on the App Store?
7 days, under guideline 3.1.2(a). The shortest duration in App Store Connect is 1 week and the longest is 1 year (as of October 16, 2026).
Is a restore purchases button required?
Apple requires the subscription screen to give current subscribers a way to sign in or restore purchases. In SubscriptionStoreView that's the restorePurchases button, available since iOS 17.0.
Should the paywall come before or after onboarding?
Apple suggests showing subscription benefits during onboarding and letting people try the app before buying. A common pattern is a paywall as the last onboarding screen that people can close.
Build your own app in Appto
Appto checks the niche on fresh App Store data, designs the screens, writes the code, builds the App Store page and submits to Apple from your account or shows you what to press in App Store Connect. Runs on your own Claude Code or Codex.
Download for Mac