AI agent skill to scan iOS/macOS projects for App Store rejection patterns before submission
npx skills add https://github.com/truongduy2611/app-store-preflight-skills --skill app-store-preflight-skillsقم بتثبيت هذه المهارة باستخدام واجهة سطر الأوامر (CLI) وابدأ في استخدام سير عمل SKILL.md في مساحة عملك.
An AI agent skill that runs pre-submission checks on your iOS/macOS project to catch common mistakes that lead to App Store rejection.
Preflight helps developers catch potential App Store Review guideline violations before submitting their app. It scans your Xcode project, source code, metadata, and configuration files to flag issues that commonly result in rejections from Apple.
This skill integrates with the asc CLI (brew install asc) and the ASC CLI Skills to pull and inspect App Store metadata.
Most metadata examples assume the canonical JSON layout written by
asc metadata pull. If you are starting from fastlane metadata, adapt the path
examples or pull the canonical asc layout first.
npx skills add truongduy2611/app-store-preflight-skills
The references/guidelines/ directory contains a complete index of all 100+ Apple Review Guidelines and 10 app-type specific checklists:
| Checklist | App Type |
|---|---|
| all_apps.md | Universal (every submission) |
| subscription_iap.md | Subscriptions / In-App Purchases |
| social_ugc.md | Social / User-Generated Content |
| kids.md | Kids Category |
| health_fitness.md | Health, Fitness & Medical |
| games.md | Games |
| macos.md | macOS / Mac App Store |
| ai_apps.md | AI / Generative AI |
| crypto_finance.md | Crypto, Finance & Trading |
| vpn.md | VPN & Networking |
📖 Full guideline reference: references/guidelines/README.md
references/guidelines/by-app-type/asc metadata pull --app "<APP_ID>" --version "<VERSION>" --dir ./metadata (or the asc-metadata-sync skill)references/rules/See SKILL.md for the full AI agent instructions.
All rules live in references/rules/, organized by category:
references/rules/metadata/)| Rule | Guideline | What It Catches |
|---|---|---|
| competitor_terms | 2.3.1 | Android, Google Play, and other competitor brands |
| apple_trademark | 5.2.5 | Apple device images in icon, Apple trademark misuse |
| china_storefront | 5 | OpenAI/ChatGPT/Gemini references (China) |
| accurate_metadata | 2.3.4 | Device frames in app preview videos |
| subscription_metadata | 3.1.2 | Missing ToS/EULA and Privacy Policy links |
references/rules/subscription/)| Rule | Guideline | What It Catches |
|---|---|---|
| missing_tos_pp | 3.1.2 | No Terms or Privacy Policy in app/metadata |
| misleading_pricing | 3.1.2 | Monthly price more prominent than billed amount |
references/rules/privacy/)| Rule | Guideline | What It Catches |
|---|---|---|
| unnecessary_data | 5.1.1 | Requiring irrelevant personal data |
| privacy_manifest | 5.1.1 | Missing PrivacyInfo.xcprivacy |
references/rules/design/)| Rule | Guideline | What It Catches |
|---|---|---|
| sign_in_with_apple | 4.0 | Asking name/email after SIWA |
| minimum_functionality | 4.2 | WebView wrappers, apps with < 3 screens, no unique value |
references/rules/entitlements/)| Rule | Guideline | What It Catches |
|---|---|---|
| unused_entitlements | 2.4.5(i) | Unused entitlements in Xcode project |
Create a .md file in the appropriate references/rules/ subdirectory:
# Rule: [Short Title]
- **Guideline**: [Apple Guideline Number]
- **Severity**: REJECTION | WARNING
- **Category**: metadata | subscription | privacy | design | entitlements
## What to Check
## How to Detect
## Resolution
## Example Rejection
MIT