Prevent App Store payment bans before submission.
The problem: Stripe encourages developers to migrate off Apple IAP. Apple terminates apps for this. Stripe ghosts them. There's no tooling to detect violations before submission. Until now.
npx iap-shield scan
Or install globally:
npm install -g iap-shield
iap-shield scan ./src
| Category | Examples |
|---|---|
| Stripe SDK | stripe, @stripe/stripe-react-native, flutter_stripe |
| Checkout URLs | checkout.stripe.com, buy.stripe.com |
| Payment Copy | "subscribe on our website", "pay on web" |
| API Calls | createCheckoutSession, confirmPayment |
IAP Shield is a static analysis tool. It scans your source files for patterns that violate Apple's App Store payment guidelines.
.ts, .tsx, .js, .jsx, .swift, .dart filesFully offline. No network requests. No data collection. Your code never leaves your machine.
# GitHub Actions
- run: npx iap-shield scan --ci
# The --ci flag exits with code 1 on violations
Digital goods must use Apple In-App Purchase. External payment links, Stripe SDKs, and "subscribe on web" copy can get your app terminated.
iOS App → Apple IAP (digital goods)
Web App → Stripe (all payments)
Backend → Unified entitlement service