Claude Code skill that scans Xcode projects for common App Store rejection reasons before submission
npx skills add https://github.com/justinperea/app-store-review-skill --skill app-store-reviewInstallieren Sie diesen Skill über die CLI und beginnen Sie mit der Verwendung des SKILL.md-Workflows in Ihrem Arbeitsbereich.
Stop getting rejected. Catch every issue before Apple does.
Quick Start • What It Catches • Report Preview • How It Works
A Claude Code skill that scans your actual Swift code and Xcode project for App Store rejection reasons — not a checklist you read, but an automated audit that reads your files, finds problems, and tells you exactly what to fix.
~40% of iOS apps get rejected on first submission. The top reasons are all preventable:
PrivacyInfo.xcprivacy (ITMS-91053) — the #1 rejection reason since 2024These aren't hard problems. They're easy to miss, tedious to check manually, and painful to discover after waiting days for Apple's review.
This skill checks all of them in one pass. It reads your project.pbxproj, every Info.plist, all your Swift files, entitlements, and asset catalogs — then produces a report with the exact file, line number, and fix for each issue.
Requires: Claude Code (Anthropic's CLI for Claude)
1. Install the skill:
npx skills add JustinPerea/app-store-review-skill
Or with Claude Code directly:
/install-skill https://github.com/JustinPerea/app-store-review-skill
2. Open any Xcode project and say:
Review my app for the App Store
That's it. Full report in about 3–5 minutes.
Every check scans your actual source code with specific regex patterns and validation rules. Issues are classified by severity:
| Severity | Meaning |
|---|---|
| BLOCKER | Apple will reject your app. Must fix before submitting. |
| WARNING | Likely rejection or review delay. Should fix. |
| INFO | Best practice. Won't cause rejection but improves quality. |
Beyond pass/fail checks, the report includes actionable recommendations:
One glance tells you if you're ready to submit. The header shows your readiness status, blocker/warning/info counts, and the number of checks run.
Each blocker cites the exact Apple guideline, the file and line where the problem lives, and a specific fix you can copy-paste. No guessing.
Same format as blockers, but for issues that are likely (not guaranteed) to cause rejection. Fix these too.
A quick pass/fail table across every category so you can see what's clean and what needs work.
Not a generic list — only recommendations relevant to what was actually found in your code. Includes a draft of App Store review notes you can paste directly into App Store Connect.
Every issue includes the exact file path, line number where possible, the Apple guideline being violated, and a specific fix — not generic advice.
The skill follows a 4-phase process:
.xcodeproj, enumerates all targets (main app, widgets, extensions), maps the project structureThe skill reads reference files on-demand to stay efficient — the main instructions are ~185 lines, with detailed check definitions and recommendations loaded only when needed.
app-store-review/
├── SKILL.md # Main skill (phases, report format, behavioral notes)
├── references/
│ ├── checks.md # All 53 check definitions with search patterns
│ ├── recommendations.md # 14 recommendation categories
│ ├── approval-guide.md # First-submission approval guide
│ └── privacy-keys.md # Info.plist privacy key reference
└── evals/
├── evals.json # Test case definitions with assertions
└── trigger-eval.json # Trigger accuracy test queries
The skill has been validated against real-world iOS projects:
| App | Type | Targets | Result |
|---|---|---|---|
| Multi-target app with widgets | Production SwiftUI + Firebase | 2 targets | 13/13 assertions pass |
| Metal shader physics app | SwiftUI + Metal + AudioKit | 1 target | 9/9 assertions pass |
| Simple SpriteKit game | Single-view game | 1 target | 7/7 assertions pass |
100% pass rate across 29 assertions covering accuracy, false-positive avoidance, and report quality.
Found a false positive? Know a rejection reason we're missing? Open an issue — include the Apple guideline number if you have it.
PRs welcome. If you're adding a new check, add it to references/checks.md following the existing format and include the regex pattern and severity level.
MIT — use it, fork it, ship your app.