Rejection Fix Guide

Fixing an App Store Guideline 3.1.2 Terms of Use rejection

If your app sells auto-renewable subscriptions, Apple expects a working Terms of Use (EULA) link in two places: inside the app binary and in your App Store Connect metadata. Miss either one and the submission comes back under Guideline 3.1.2, usually with a notice that lists what's missing. This guide covers where each link has to appear, the two ways to fix the metadata side, what your paywall needs to show, and how to resubmit without losing another review cycle.

What 3.1.2 actually requires

Guideline 3.1.2 covers auto-renewable subscriptions. Its Subscription Information clause, 3.1.2(c), points to Schedule 2 of the Apple Developer Program License Agreement, and section 3.8(b) of Schedule 2 is where the Terms of Use rule lives. It requires links to your Privacy Policy and Terms of Use to be accessible within your app.

Apple's subscription guidance on developer.apple.com adds the metadata side: your app and your App Store metadata must both include links to your Terms of Use and Privacy Policy. So a 3.1.2 Terms of Use rejection means the links are missing from the binary, from App Store Connect, or from both. The rejection notice says which, so read it before you change anything.

Fixing the metadata in App Store Connect

Apple's 3.1.2 rejection notices accept the Terms of Use (EULA) link in either the App Description or the EULA field. The description is the quickest fix. Add a plain line at the end, such as 'Terms of Use: https://yourapp.baseterms.com/terms', plus a matching Privacy Policy line. The description belongs to the app version, so edit it on the version you're submitting. The notice also expects a working URL in the Privacy Policy field.

If you rely on Apple's standard EULA instead of your own terms, Apple's notice says to link to it in the App Description. The standard EULA lives at apple.com/legal/internet-services/itunes/dev/stdeula/. Apple applies it automatically to any app without a custom EULA, but in that case App Store Connect doesn't show a license agreement link on your product page. The link in your description fills that gap.

To make your own terms the EULA, open your app in App Store Connect, go to App Information, click Edit next to License Agreement, choose to apply a custom EULA, and paste your terms into the Custom License Agreement field. That field takes plain text only and Apple strips HTML, so you paste the terms themselves, not a link. Adding the description link as well gives the reviewer something to click.

Fixing the binary: links on the paywall

Apple's rejection notices list what the binary must include for auto-renewable subscriptions: the subscription title, its length, its price (and price per unit where appropriate), and functional links to the privacy policy and Terms of Use. Schedule 2 only says the links must be accessible within your app, but the purchase screen is the safest place for them. A common pattern is two tappable links under the subscribe button, labeled Terms of Use and Privacy Policy.

Apple's subscription guidance also says the sign-up screen must show the subscription name and duration, what the user gets, the full renewal price, and a way to restore purchases, with the billed amount as the most prominent pricing element. Burying the billed amount under a free trial or weekly breakdown is its own 3.1.2 rejection. Before you upload, tap both links on a real device: a link that 404s or lands on your homepage isn't functional.

Resubmitting after the rejection

If the notice only cites metadata, you don't need a new build. Add the Terms of Use link to the description (or set the custom EULA) on the rejected version, reply to the App Review message saying where the link now appears, and resubmit. If the notice cites the binary, ship a new build with the paywall links and fix the metadata in the same submission so it doesn't come back a second time.

For a short checklist version of this fix, see our Guideline 3.1.2 rejection page at baseterms.com/rejections/guideline-3-1-2-subscription-terms-missing.

How BaseTerms helps

Check 'Has in-app purchases or subscriptions' in BaseTerms and the generated Terms of Service adds a Subscriptions and In-App Purchases section. It covers billing to the user's Apple ID or Google Play account, auto-renewal unless cancelled at least 24 hours before the period ends, cancellation through device account settings, refunds through Apple or Google, and price changes. The page is hosted at yourapp.baseterms.com/terms, so one URL works for your App Description and your paywall, and your Privacy Policy sits next to it at /privacy. Copy the raw Markdown free, or host on the subdomain for $9 one-time.

Ready to ship?

Generate your compliance pages now — FREE

Privacy Policy, Terms, Support, plus Data Deletion if your app has accounts — ready to paste into App Store Connect and Google Play Console. Copy the raw Markdown free or host on a custom subdomain for $9 one-time.

Generate my compliance pages FREE

One-time payment. No subscription. No renewal fees.

Common questions

Does a free trial count as a subscription?
Yes, if it converts into an auto-renewable subscription. On the App Store, a free trial is an offer on an auto-renewable subscription, so the same Terms of Use and Privacy Policy link rules apply.
Is a Terms of Service page the same thing as a Terms of Use (EULA)?
Apple's documents call it the Terms of Use (EULA), and your own hosted terms page can fill that role. Label the link 'Terms of Use' in the app and description to match Apple's wording. If you want your terms to replace Apple's standard EULA rather than sit alongside it, also paste them into the License Agreement field.
Can I just use Apple's standard EULA?
Yes. Apple applies its standard EULA to every app that doesn't set a custom one. You still need a functional Terms of Use link in your App Description and inside the app, and Apple's notice says to point that link at the standard EULA if that's what you use.
Does this apply to one-time in-app purchases?
The Terms of Use link rule in Schedule 2, section 3.8, is written for auto-renewing subscriptions. Consumables and non-consumables aren't covered by that clause, though linking your terms from any purchase screen is still good practice.