skills/capacitor-apple-review-preflight/SKILL.md
Guides the agent through an Apple App Store preflight review for Capacitor apps before submission or after rejection. Covers guideline checklist selection, App Store metadata review, Capacitor and iOS project inspection, privacy manifests, Sign in with Apple, entitlements, and common rejection patterns. Do not use for Google Play review, generic store publishing only, or non-Apple mobile runtimes.
npx skillsauth add cap-go/capacitor-skills capacitor-apple-review-preflightInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run a pre-submission or post-rejection Apple review audit for a Capacitor app.
This skill adapts the Apple guideline and rejection-rule corpus from truongduy2611/app-store-preflight-skills and narrows the workflow to Capacitor-specific project inspection.
Detected Capacitor, auth, subscription, analytics, and privacy-related packages:
!node -e "const fs=require('fs');if(!fs.existsSync('package.json'))process.exit(0);const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));const sections=['dependencies','devDependencies'];const out=[];for(const section of sections){for(const [name,version] of Object.entries(pkg[section]||{})){if(name.startsWith('@capacitor/')||name.startsWith('@capgo/')||name.includes('firebase')||name.includes('sentry')||name.includes('revenuecat')||name.includes('purchase')||name.includes('subscription')||name.includes('auth')||name.includes('analytics')||name.includes('segment')||name.includes('amplitude')||name.includes('mixpanel'))out.push(section+'.'+name+'='+version)}}console.log(out.sort().join('\n'))"
Relevant Apple review file paths:
!find . -maxdepth 6 \( -name 'package.json' -o -name 'capacitor.config.json' -o -name 'capacitor.config.ts' -o -name 'capacitor.config.js' -o -name 'Info.plist' -o -name '*.entitlements' -o -name 'PrivacyInfo.xcprivacy' -o -name 'project.pbxproj' -o -path './ios' -o -path './fastlane/metadata' -o -path './metadata' \)
Use this skill for Apple-facing review work, not for generic publishing.
If the task is mostly about screenshots, release setup, or store upload mechanics, combine this skill with capacitor-app-store.
Always read:
references/guidelines/by-app-type/all_apps.mdThen add the checklist that matches the app:
subscription_iap.md for subscriptions or IAPsocial_ugc.md for UGC or moderation-heavy appskids.md for Kids Categoryhealth_fitness.md for health, fitness, or medical claimsgames.md for gamesai_apps.md for AI or LLM featurescrypto_finance.md for crypto, trading, or financial workflowsvpn.md for VPN and networking appsmacos.md only when the submission also targets macOSUse references/guidelines/README.md for the full guideline index when a rejection cites a specific section.
Start from the injected snapshot above, then inspect:
package.json for Capacitor, auth, analytics, subscription, and SDK dependenciescapacitor.config.* for app identifiers, app name, web asset config, and live update settingsios/App/App/Info.plist or the project-specific Info.plist*.entitlements filesPrivacyInfo.xcprivacy if presentfastlane/metadata or other local metadata directories if they existPay special attention to Capacitor-specific Apple review risks:
Use the upstream rule files as the source of truth:
references/rules/metadata/*.mdreferences/rules/subscription/*.mdreferences/rules/privacy/*.mdreferences/rules/design/*.mdreferences/rules/entitlements/*.mdMap them onto the Capacitor app:
Info.plist, privacy manifests, SDK usage, and data collection flowsIf App Store metadata is not stored locally and asc is available, pull it with asc metadata pull --output-dir ./metadata. If not, audit local metadata sources and state what remains unverified.
Use this format:
## Apple Review Preflight
### Rejections Found
- [GUIDELINE X.X.X] Issue summary
- Evidence: file or metadata location
- Why it matters for this Capacitor app
- Fix: exact remediation
### Warnings
- [GUIDELINE X.X.X] Potential issue
### Passed
- [Category] Checks that looked clean
### Missing Inputs
- Metadata or review assets that were not available locally
Order findings by severity and make each fix concrete.
When relevant, draft reviewer notes for:
asc is not configured, continue with the code and project audit and clearly mark metadata checks as partial.PrivacyInfo.xcprivacy before assuming privacy compliance.development
Complete guide to handling safe areas in Capacitor apps for iPhone notch, Dynamic Island, home indicator, and Android cutouts. Covers CSS, JavaScript, and native solutions. Use this skill when users have layout issues on modern devices.
development
Guide to using Konsta UI for pixel-perfect iOS and Material Design components in Capacitor apps. Works with React, Vue, and Svelte. Use this skill when users want native-looking UI without Ionic, or prefer a lighter framework.
development
Guide to using Ionic Framework components for beautiful native-looking Capacitor apps. Covers component usage, theming, platform-specific styling, and best practices for mobile UI. Use this skill when users need help with Ionic components or mobile UI design.
tools
Guide to accessing device logs on iOS and Android for Capacitor apps. Covers command-line tools, GUI applications, filtering, and real-time streaming. Use this skill when users need to view device logs for debugging.