Guideline 3.1.2 rejection: Subscriptions
How the rejection usually reads: "Your app's binary or metadata is missing required information about auto-renewable subscriptions: a functional link to the Terms of Use (EULA)" / "the app offers a free trial that is not configured as an introductory offer"
Why it happens
Auto-renewable subscriptions carry two paperwork requirements the reviewer checks every time: a working Terms of Use (EULA) link plus a privacy policy link — in the app or in the App Store description — and a match between what the paywall promises (price, period, free trial) and what is configured on the subscription in App Store Connect. The binary shows whether the terms wording and any "free trial" copy are there; the offer configuration lives in App Store Connect, so that part is a go-check item.
What can be checked before you submit
2 of RejectProof’s checks map to Guideline 3.1.2. Each one reads your .ipa — no upload — and reports the evidence with a fix.
- "Free trial" wording in the app — verify an introductory offer exists in App Store Connect
PB-44 · guideline 3.1.2(a) · warning
If the paywall says "free trial" / "X days free" but no introductory offer is configured on the subscription in App Store Connect (Subscriptions → your product → Introductory Offers), the reviewer sees a promise the store cannot honour and rejects under 3.1.2(a). Either configure the offer (and make sure it applies to new subscribers in the reviewer's region) or remove the wording. The scan cannot see App Store Connect, so treat this as a go-check item.
- Auto-renewable subscription without Terms of Use (EULA) wording in the app
PB-45 · guideline 3.1.2 · warning
Apps with auto-renewable subscriptions must show a functional link to the Terms of Use (EULA) and the privacy policy — in the app binary (paywall or settings) or in the App Store description. The scan found subscription code but no "Terms of Use" / "Terms of Service" / "EULA" text in the bundle. Add the link next to the subscribe button (Apple's standard EULA at apple.com/legal/internet-services/itunes/dev/stdeula/ is accepted), or paste both links into the App Store description before submitting.
What a scan cannot tell you
Static checks read the build; they do not run it. Whether a reviewer likes your design, agrees with your content, or considers the app “sufficiently different” is their call. Fix the mechanical layer first so the human review is about your product, not about a missing plist key.