agentsclimarketplace

Rn publishing payments

Skill lukedj78/dev-flow/rn-publishing-payments

A filesystem contract (.workflow/meta.json) + 37 agent skills that take a product from idea to production: web (Next.js 16) & mobile (Expo/RN), plus an eve agent engine and Linear/scrum. Runs on Claude Code, Codex, Copilot, Gemini, Cursor.

Install
npx -y skills add lukedj78/dev-flow --skill rn-publishing-payments

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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).

SKILL.md

3.7 KB, as published. Nobody here has run it

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 reporting) — each declares what it collects.

Quick decision tree

  • "IAP, Stripe, or external link?" → references/decision-tree.md
  • "What assets do I need for the store?" → references/store-assets.md
  • "How do I integrate RevenueCat?" → references/revenuecat.md
  • "What about App Store review?" → references/review-guidelines.md

Common anti-patterns (NEVER do)

  • ❌ "Buy premium" button that opens Stripe Checkout in a WebView for an in-app subscription → rejection.
  • ❌ "Already paid on the web? Sign in to unlock" → tolerated under specific conditions (reader app exemption, multi-platform service), but read the rules first.
  • ❌ Hardcoded "€4.99/month" in the UI — use product.priceString from RevenueCat / StoreKit (localized currency, tax-included for EU).
  • ❌ Skipping Sign in with Apple when offering Google sign-in (iOS) → 4.8 reject.
  • ❌ Marketing screenshots with fake content or device frames not provided by Apple → 2.3 reject.
  • ❌ Privacy nutrition label that says "no data collected" while you ship Firebase Analytics → ban risk.
  • ❌ Asking for IDFA (ATT prompt) before showing app value → bad practice + low opt-in rate.

Sources

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.