"Restore Purchases" button accessible and functional
Why it matters
Apple guideline 3.1.1 explicitly requires a "Restore Purchases" mechanism for all non-consumable IAP and subscriptions. Its absence is a rejection reason — but the practical impact compounds post-launch: users who delete and reinstall the app, upgrade to a new device, or restore from backup lose access to content they paid for. These users generate support tickets, file chargebacks with their bank or credit card company, and leave one-star reviews. Chargebacks damage the developer's payment processor standing even though Apple actually processed the payment. A functional restore path prevents all of this at minimal implementation cost.
Severity rationale
Critical because Apple guideline 3.1.1 explicitly mandates a restore mechanism, and its absence causes immediate rejection — not a warning.
Remediation
Add a "Restore Purchases" button to your paywall and/or settings screen. The button must be reachable without completing a purchase — users who reinstalled the app have no other path to reclaim their access.
// PaywallScreen.tsx or SettingsScreen.tsx
const handleRestore = async () => {
try {
const customerInfo = await Purchases.restorePurchases();
if (customerInfo.entitlements.active['premium']) {
unlockPremium();
Alert.alert('Purchases Restored', 'Your subscription has been restored.');
} else {
Alert.alert('No Purchases Found', 'No active subscription was found for this account.');
}
} catch (e) {
Alert.alert('Restore Failed', 'Could not restore purchases. Please try again.');
}
};
<TouchableOpacity onPress={handleRestore}>
<Text>Restore Purchases</Text>
</TouchableOpacity>
Place the restore button in both the paywall and the settings/account screen. Verify that after restore, the entitlement state is refreshed and the premium UI unlocks immediately.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the App Store IAP & Subscriptions Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · apple-guideline-3.1.1 — Apple App Store Review Guidelines § 3.1.1 — In-App Purchase (restore purchases requirement)
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-iap-subscriptions·automated