← ClaudeAtlas

rn-publishing-paymentslisted

Use when preparing an Expo + RN app for store submission (metadata, screenshots, localized listings, privacy nutrition label, age rating) and integrating monetization (In-App Purchases via RevenueCat for digital goods/subscriptions; Stripe via WebView ONLY for non-digital services). Triggers on: "submit to App Store", "Play Store listing", "screenshot sizes", "RevenueCat setup", "Stripe payment in app", "subscription", "IAP", "privacy nutrition label", "App Store review reject". Not for: building / submitting (rn-eas-build-submit-update), backend setup (rn-backend).
lukedj78/dev-flow · ★ 4 · Web & Frontend · score 77
Install: claude install-skill lukedj78/dev-flow
# rn-publishing-payments — guardrail for store publishing + payments > For the current Expo API and per-version details, verify against the Expo docs / MCP `mcp.expo.dev` / `expo/skills` (see rn-fundamentals → Source of truth). ## The 5 rules (non-negotiable) 1. **Apple's 30% rule**: ANY digital good/service consumed inside the app MUST go through IAP (subscriptions, premium tiers, in-app currency, unlock-feature one-shots) — **unless** an allowed external-purchase path applies (notably the US external-link rule since May 2025; see `references/decision-tree.md` Q2). Bypassing IAP *without* an allowed path = rejection under guideline 3.1.1. 2. **Stripe / external payment only for NON-digital**: physical goods (shipped), services rendered outside the app (ride, food delivery, classroom), B2B (consultant invoice). Even then, Apple's "anti-steering" rules apply — careful what you link. 3. **Use RevenueCat for IAP**, not raw `react-native-iap`. RevenueCat handles receipt validation, cross-platform subscriptions, restore-purchases, sandbox testing, and analytics in one SDK with a generous free tier. Raw IAP works but you'll write 10x the code. 4. **Screenshots must be REAL** screenshots of the running app, not marketing illustrations (guideline 2.3.10). 3 sizes per platform required (see `references/store-assets.md`). 5. **Privacy nutrition label (iOS) + Data safety (Android) MUST match reality**. Lying about data collection = ban. Audit the SDKs you use (analytics, push, crash