Skip to content
Development
Skill

/rejection-handler

Handle App Store rejections, prepare submissions to avoid common rejection reasons, write Resolution Center responses, and navigate the appeal process. Use when user's app was rejected, is preparing for submission, or needs help with App Review.

From plugin
rshankras-apple-skills
603183 skills
Install
$ npx -y skills add rshankras/claude-code-apple-skills --skill rejection-handler --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/rejection-handler

Context preview

The summary Claude sees to decide when to auto-load this skill.

Handle App Store rejections, prepare submissions to avoid common rejection reasons, write Resolution Center responses, and navigate the appeal process. Use when user's app was rejected, is preparing for submission, or needs help with App Review.

SKILL.md

rejection-handler.SKILL.md
name: rejection-handler
description: Handle App Store rejections, prepare submissions to avoid common rejection reasons, write Resolution Center responses, and navigate the appeal process. Use when user's app was rejected, is preparing for submission, or needs help with App Review.
allowed-tools: [Read, Glob, Grep, AskUserQuestion]
last_verified: 2026-07-16
review_by: 2027-06-22
os_version: iOS 27 / macOS 27

App Store Rejection Handler

Guide developers through handling App Store rejections — from understanding why the rejection happened, to crafting effective responses, to escalating when appropriate.

When This Skill Activates

Use this skill when the user:

  • Says their app was rejected by App Review
  • Asks for help understanding a rejection notice
  • Wants to prepare a submission to minimize rejection risk
  • Needs help writing a response in Resolution Center
  • Wants to appeal a rejection decision
  • Asks about common App Store rejection reasons
  • Mentions "App Review", "guideline violation", or "rejection"
  • Wants a pre-submission audit for guideline compliance

Reference Files

Before handling a rejection, load:

| File | Purpose | |------|---------| | **common-rejections.md** | Top 20 rejection reasons with fixes and response templates |

Pre-Submission Audit Checklist

Run through this before submitting to avoid the most common rejections. Each item maps to a specific App Store Review Guideline.

App Completeness (Guideline 2.1)

  • [ ] App launches without crashing on all supported devices
  • [ ] All features described in metadata are functional
  • [ ] No placeholder content (lorem ipsum, test data, TODO screens)
  • [ ] No broken links or dead-end navigation
  • [ ] All buttons and interactive elements work
  • [ ] Demo/test accounts provided in App Review notes if login is required
  • [ ] Beta or test labels removed from UI and metadata

Accurate Metadata (Guideline 2.3)

  • [ ] App name matches what the app actually does
  • [ ] Screenshots show the actual current app UI
  • [ ] Description accurately represents functionality
  • [ ] Category selection is appropriate
  • [ ] No misleading claims ("best", "#1") without substantiation
  • [ ] Age rating reflects actual content
  • [ ] What's New text describes actual changes (not marketing copy)
  • [ ] Keywords do not include competitor names or misleading terms

Software Requirements (Guideline 2.5)

  • [ ] App uses only public APIs (no private frameworks)
  • [ ] No deprecated APIs that are marked for removal
  • [ ] App works on the oldest supported iOS/macOS version claimed
  • [ ] No remote code execution (no downloading and running code)
  • [ ] IPv6 networking compatibility

In-App Purchase Compliance (Guideline 3.1)

  • [ ] All digital content/features use Apple's IAP (not Stripe, PayPal, etc.)
  • [ ] Physical goods/services CAN use external payment
  • [ ] Subscription terms are clear before purchase
  • [ ] "Restore Purchases" button exists and works
  • [ ] Subscription management is accessible within the app
  • [ ] No language directing users to purchase outside the app
  • [ ] Free trial terms are clearly stated

Design Quality (Guideline 4.0)

  • [ ] App uses native UI components (not a web wrapper for existing website)
  • [ ] Supports current device screen sizes
  • [ ] No empty states without guidance
  • [ ] Error messages are user-friendly
  • [ ] Loading states exist for async operations
  • [ ] App provides meaningful functionality (not a glorified bookmark)

Privacy Compliance (Guideline 5.1)

  • [ ] Privacy policy URL is provided and accessible
  • [ ] Privacy policy accurately describes data collection
  • [ ] App Tracking Transparency prompt shown before tracking (if applicable)
  • [ ] Privacy Nutrition Labels in App Store Connect match actual behavior
  • [ ] Data minimization — only collect what you need
  • [ ] User data deletion mechanism exists (if data is collected)
  • [ ] Privacy manifest included (required for certain APIs, iOS 17+)

Legal Requirements (Guideline 5.2)

  • [ ] App complies with local laws in all territories where distributed
  • [ ] Required age gates for restricted content
  • [ ] Health/medical disclaimers if applicable
  • [ ] Financial disclaimers if applicable

App Review Notes (Submission)

  • [ ] Demo account credentials provided (if login required)
  • [ ] Special hardware instructions noted (if needed)
  • [ ] Backend requirements explained (if features need server access)
  • [ ] Explain non-obvious features or flows
  • [ ] Mention any entitlements and why they're needed

Rejection Handling Process

Step 1: Read the Rejection Notice Carefully

When a user reports a rejection, gather:

1. **The exact guideline cited** (e.g., "Guideline 4.2 - Design - Minimum Functionality") 2. **The full rejection message text** (Apple provides specific details) 3. **Any screenshots or annotations** Apple included 4. **Whether this is a first submission or re-submission**

Ask via AskUserQuestion:

  • "Can you paste the full rejection message from App Store Connect?"
  • "Which guideline number was cited?"
  • "Is this the first time this app has been submitted?"
  • "Have you made changes since a previous rejection?"

Step 2: Identify the Rejection Category

Read **common-rejections.md** and match the cited guideline to the detailed breakdown. Determine:

  • Is the rejection objectively correct? (crash, privacy violation, missing IAP)
  • Is the rejection subjective? (minimum functionality, design quality)
  • Is the rejection possibly in error? (reviewer misunderstood the app)

Step 3: Determine Response Strategy

Is the rejection objectively correct?
├── YES → Fix the issue and resubmit (Phase A)
└── NO → Did the reviewer misunderstand?
    ├── YES → Clarify with evidence (Phase B)
    └── NO → Is it a subjective judgment call?
        ├── YES → Evaluate: fix or push back? (Phase C)
        └── NO → Appeal (Phase D)

Phase A: Fix and Resubmit

For clear violations (crashes, missing privacy policy, priva

Read more
Ships withrshankras-apple-skills

A collection of Claude Code skills for iOS, macOS, watchOS, visionOS, and Apple platform development. These skills help you plan and build apps, maintain code quality, ensure HIG compliance, and guide you from idea to App Store.

Get the whole plugin
Stats
603
Stars
51
Forks
Active
Maintenance
Swift
Language
MIT
License
16d ago
Last commit
9mo ago
Created

Repo: rshankras/claude-code-apple-skills

Other skills on rshankras-apple-skills.