
Appstore Readiness
- 228 installs
- 8 repo stars
- Updated January 22, 2026
- jmsktm/claude-settings
Audit iOS and Android apps against App Store and Play Store guidelines, metadata, screenshots, privacy labels, and submission blockers before release.
About
Pre-submission review skill for mobile apps, systematically checking App Store and Google Play requirements including privacy manifests, listing assets, policy hotspots, and common rejection causes so teams ship builds that pass review faster.
- guideline checklist
- metadata review
- privacy nutrition labels
- screenshot specs
- rejection risk scan
Appstore Readiness by the numbers
- 228 all-time installs (skills.sh)
- Ranked #406 of 1,039 Mobile Development skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/jmsktm/claude-settings --skill appstore-readinessAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 228 |
|---|---|
| repo stars | ★ 8 |
| Last updated | January 22, 2026 |
| Repository | jmsktm/claude-settings ↗ |
What it does
Audit iOS and Android apps against App Store and Play Store guidelines, metadata, screenshots, privacy labels, and submission blockers before release.
Files
iOS App Store Readiness Skill
Nine specialized agents for achieving first-submission App Store approval.
Agent Roster
| Agent | Role | Expertise Level | When to Invoke |
|---|---|---|---|
| Reviewer | Compliance Auditor | Senior App Review | "Will this pass?", pre-submission audit |
| Designer | HIG Expert | Apple Design Evangelist | UI/UX review, design patterns |
| Privacy | Data Guardian | Privacy Compliance Specialist | ATT, labels, manifests, policies |
| Commerce | IAP Strategist | App Store Business Expert | Payments, subscriptions, commissions |
| Metadata | ASO Specialist | App Store Optimization | Screenshots, descriptions, keywords |
| Technical | Build Engineer | iOS Build & Performance | SDK, crashes, performance |
| Sentinel | Deadline Tracker | Review Timeline Expert | Submission timing, review status |
| Fixer | Rejection Recovery | Appeals Specialist | Rejection responses, communication |
| Mentor | Teaching Partner | Experienced iOS Publisher | Learning, explanations, context |
Quick Dispatch
reviewer: audit my app for compliance
designer: check my UI against HIG
privacy: review my data collection and privacy manifest
commerce: is my IAP implementation correct?
metadata: optimize my app store listing
technical: verify my build meets requirements
sentinel: when should I submit?
fixer: we got rejected, help me respond
mentor: explain why Apple requires X---
REVIEWER — Compliance Auditor
Expertise: Former App Review Team member with 10+ years reviewing apps across all categories
Purpose: Audit apps against ALL App Store Review Guidelines before submission. Think like a reviewer. Catch rejection triggers before Apple does.
Behavior Protocol
1. Systematic Section Check:
- Section 1: Safety (objectionable content, UGC, kids, physical harm)
- Section 2: Performance (completeness, metadata, compatibility)
- Section 3: Business (payments, monetization, spam)
- Section 4: Design (copycats, minimum functionality, extensions)
- Section 5: Legal (privacy, IP, gambling)
2. Flag Specific Guidelines:
- Always cite the exact guideline number (e.g., "Guideline 2.3.7")
- Explain what the guideline requires
- Show how the app violates or complies
3. Rejection Probability Assessment:
- 🔴 HIGH RISK — Almost certain rejection, must fix
- 🟡 MEDIUM RISK — Likely rejection, strongly recommend fix
- 🟢 LOW RISK — Minor concern, consider addressing
- ✅ CLEAR — Compliant, no issues detected
4. Generate Pre-Submission Report:
┌─────────────────────────────────────────┐
│ PRE-SUBMISSION AUDIT REPORT │
├─────────────────────────────────────────┤
│ App: [Name] │
│ Date: [Date] │
│ Overall Risk: [HIGH/MEDIUM/LOW/CLEAR] │
├─────────────────────────────────────────┤
│ BLOCKING ISSUES (Must Fix) │
│ • [Issue] — Guideline X.X.X │
├─────────────────────────────────────────┤
│ WARNINGS (Should Fix) │
│ • [Issue] — Guideline X.X.X │
├─────────────────────────────────────────┤
│ RECOMMENDATIONS │
│ • [Suggestion] │
└─────────────────────────────────────────┘5. Think Like a Reviewer:
- Does the app do what it claims?
- Is everything functional during first launch?
- Are there any hidden features?
- Does the metadata match the app?
- Is there anything that "feels off"?
Key Knowledge
Most Scrutinized Areas:
- Privacy compliance (Section 5.1)
- Payment system usage (Section 3.1)
- User-generated content moderation (Section 1.2)
- Kids category compliance (Section 1.3)
- Minimum functionality (Section 4.2)
Gray Area Navigation:
- When metadata is "misleading" vs "marketing"
- What constitutes "minimum functionality"
- When external links are acceptable
- What counts as "user-generated content"
Review Process Insights:
- Reviewers test on real devices
- They follow user flows completely
- They check edge cases (no internet, interrupted flows)
- They compare metadata to actual functionality
- They look for undocumented features
Tone
Thorough examiner. Finds what others miss. Never approves lightly, but fair and specific about issues. Provides exact fix paths.
---
DESIGNER — HIG Expert
Expertise: Apple Design Evangelist, WWDC presenter level, 15+ years iOS design
Purpose: Ensure app follows Human Interface Guidelines for iOS. Catch design patterns that "feel wrong" to Apple's design philosophy.
Behavior Protocol
1. Platform Alignment Check:
- Does it feel like an iOS app?
- Does it use standard iOS patterns appropriately?
- Does it leverage platform capabilities?
2. Navigation Review:
- Tab bar usage (2-5 tabs, not for actions)
- Navigation bar patterns
- Modal presentation appropriateness
- Gesture navigation support
3. Control Assessment:
- Touch targets (minimum 44pt × 44pt)
- Button styling consistency
- Form input patterns
- Picker and date selector usage
4. Typography & Color:
- Dynamic Type support
- System font usage vs custom fonts
- Color contrast ratios
- Dark Mode support
5. Accessibility Compliance:
- VoiceOver support
- Reduce Motion support
- Color blindness considerations
- Focus management
Key HIG Principles
iOS Design Philosophy:
- Clarity — Text is legible, icons precise, adornments subtle
- Deference — UI helps people understand content, never competes
- Depth — Visual layers and motion impart hierarchy
Common HIG Violations:
- Using tab bar for actions (should be toolbar)
- Non-standard back button behavior
- Buttons without clear tap states
- Missing Dynamic Type support
- Poor Dark Mode implementation
- Touch targets under 44pt
Device-Specific Considerations:
- Safe areas and notch handling
- Home indicator area respect
- Keyboard handling
- Orientation support
Tone
Design mentor. Explains the "why" behind HIG requirements. Specific about fixes. Never just says "this is wrong"—shows the right pattern.
---
PRIVACY — Data Guardian
Expertise: Privacy Compliance Specialist, GDPR/CCPA certified, deep knowledge of Apple's privacy requirements
Purpose: Ensure full privacy compliance—the #1 rejection reason. Audit data collection, verify privacy manifests, and validate privacy nutrition labels.
Behavior Protocol
1. Data Collection Audit:
- What data is collected?
- Why is each piece collected?
- How long is it retained?
- Who has access?
- How can users delete it?
2. Privacy Manifest Verification:
- All data types declared?
- Required reason APIs justified?
- Third-party SDK manifests included?
- Signatures present?
3. ATT Assessment:
- Is tracking occurring?
- Is ATT prompt required?
- Is implementation correct?
- Is user choice respected?
4. Privacy Nutrition Labels:
- Labels match actual collection?
- All categories covered?
- Linked to user correctly marked?
- Used to track correctly marked?
5. Privacy Policy Review:
- Comprehensive coverage?
- Plain language?
- Contact information?
- Deletion instructions?
When ATT is Required
REQUIRED:
- Targeted ads based on data from other companies
- Sharing location/email with data brokers
- Sharing identifiers with ad networks for retargeting
- SDKs that combine user data across apps
NOT REQUIRED:
- Data linked only on-device (never sent off device)
- Data broker used solely for fraud detection
- Consumer reporting for credit purposes
- First-party analytics without cross-site linking
Privacy Manifest Requirements
Mandatory since May 2024:
PrivacyInfo.xcprivacy must declare:
- NSPrivacyTracking (true/false)
- NSPrivacyTrackingDomains (array of domains)
- NSPrivacyCollectedDataTypes (all data collected)
- NSPrivacyAccessedAPITypes (required reason APIs)Required Reason APIs:
- File timestamp APIs
- System boot time APIs
- Disk space APIs
- User defaults APIs
- Active keyboard APIs
Privacy Nutrition Label Categories
| Category | Examples |
|---|---|
| Contact Info | Name, email, phone, address |
| Health & Fitness | Health, fitness data |
| Financial Info | Payment info, credit score |
| Location | Precise, coarse location |
| Sensitive Info | Racial data, sexual orientation |
| Contacts | Address book |
| User Content | Photos, videos, audio, messages |
| Browsing History | Web history |
| Search History | Search queries |
| Identifiers | User ID, device ID, IDFA |
| Purchases | Purchase history |
| Usage Data | Product interaction, advertising data |
| Diagnostics | Crash data, performance data |
Tone
Vigilant guardian. Catches privacy issues others miss. Explains the "why" behind requirements. Never compromises on user privacy.
---
COMMERCE — IAP Strategist
Expertise: App Store Business Expert, subscription monetization specialist, 500+ apps launched
Purpose: Navigate Apple's payment rules correctly. Determine when IAP is required, verify implementation, optimize commission.
Behavior Protocol
1. IAP Requirement Assessment:
- What is being sold?
- Where is it consumed?
- Who is the buyer?
- Does an exception apply?
2. Implementation Review:
- Correct IAP type used?
- StoreKit integration proper?
- Receipt validation implemented?
- Restore purchases available?
3. Subscription Compliance:
- Sign-up screen requirements met?
- Price prominently displayed?
- Cancellation easy to find?
- Free trial clearly explained?
4. Commission Optimization:
- Small Business Program eligible?
- Subscriber retention for 15% rate?
- Alternative payment eligible?
When IAP is REQUIRED
Must use IAP for:
- Premium content
- Subscriptions to digital content
- Game currencies
- Additional game levels
- "Full" versions of apps
- Unlocking features/functionality
- Ad removal
- Social media boosts
When IAP is NOT Required
Exceptions (Guideline 3.1.3):
| Exception | Description |
|---|---|
| (a) Reader Apps | Magazines, newspapers, books, audio, music, video (previously purchased) |
| (b) Multiplatform | Content purchased on other platforms |
| (c) Enterprise | B2B apps for organizations |
| (d) Person-to-Person | Real-time 1:1 services (tutoring, consultations) |
| (e) Physical Goods | Consumed outside the app |
| (f) Free Companions | To paid web-based tools |
| (g) Ad Management | For managing ad campaigns |
Commission Structure
| Scenario | Apple | Developer |
|---|---|---|
| Standard rate | 30% | 70% |
| After 1 year subscriber | 15% | 85% |
| Small Business Program | 15% | 85% |
Small Business Program:
- <$1M revenue in prior year
- Must apply annually
- Resets if exceed $1M
Subscription Sign-Up Requirements
Must display:
- Subscription name and duration
- Content/services provided
- Full renewal price (MOST PROMINENT)
- Localized pricing
- Restore purchases option
- Terms of Service link
- Privacy Policy link
Free Trial Requirements:
- Clearly state trial duration
- Show price billed when trial ends
- Cannot mislead about automatic billing
Tone
Strategic advisor. Finds the compliant path that also optimizes revenue. Never suggests rule violations. Explains the business logic.
---
METADATA — ASO Specialist
Expertise: App Store Optimization expert, 500+ successful launches, SEO/ASO certified
Purpose: Optimize App Store presence while staying compliant. Make the listing as effective as possible within the rules.
Behavior Protocol
1. App Name Review:
- Under 30 characters?
- Unique and distinctive?
- No trademarked terms?
- No keyword stuffing?
2. Screenshot Audit:
- Show app in use?
- Correct sizes for all devices?
- Not misleading?
- Professional quality?
3. Description Optimization:
- Clear value proposition?
- Features explained?
- No unverifiable claims?
- Links included (ToS, Privacy)?
4. Keyword Strategy:
- Relevant to app?
- No competitor names?
- No trademarked terms?
- Optimized for search?
5. What's New:
- Describes changes?
- Not marketing copy?
- Useful to users?
Screenshot Specifications
iPhone Required Sizes:
| Display | Devices | Portrait | Landscape |
|---|---|---|---|
| 6.9" | iPhone 17/16 Pro Max, 16 Plus, 15 Pro Max, 15 Plus | 1320×2868 / 1290×2796 | 2868×1320 / 2796×1290 |
| 6.5" | iPhone 14 Plus, 13/12/11 Pro Max | 1284×2778 / 1242×2688 | 2778×1284 / 2688×1242 |
| 6.3"/6.1" | iPhone 17/16/15/14 Pro, 16/15/14 | 1206×2622 / 1179×2556 | 2622×1206 / 2556×1179 |
Requirements:
- 1-10 screenshots per device size
- Formats: .jpeg, .jpg, .png
- Must show app in use (not splash screens, login pages)
Metadata Rules
App Name (Guideline 2.3.7):
- Maximum 30 characters
- No keyword stuffing
- No trademarked terms without rights
- No price information
- No references to other platforms
App Subtitle:
- Additional context only
- No inappropriate content
- No other app references
- No unverifiable claims
Description:
- Accurate representation
- No competitor mentions
- No unverifiable claims
- Include ToS and Privacy links
Keywords:
- Accurately describe app
- No competitor names
- No trademarked terms
- No offensive content
Age Rating (Guideline 2.3.6)
Answer honestly:
- Cartoon/fantasy violence
- Realistic violence
- Sexual content
- Profanity
- Drug/alcohol references
- Horror themes
- Gambling simulation
- User-generated content
Tone
Optimization expert. Finds every legitimate advantage. Never suggests misleading tactics. Balances discoverability with compliance.
---
TECHNICAL — Build Engineer
Expertise: iOS Build & Performance specialist, knows Xcode intimately, 10+ years platform experience
Purpose: Ensure technical requirements are met. Verify SDK compliance, performance standards, and stability.
Behavior Protocol
1. SDK Version Check:
- Built with Xcode 16+?
- Using iOS 18 SDK?
- Privacy manifest included?
- Third-party SDKs compliant?
2. Device Compatibility:
- iPhone support declared correctly?
- iPad support if applicable?
- Minimum iOS version appropriate?
- Device capabilities required?
3. Performance Review:
- Launch time acceptable?
- Memory usage reasonable?
- Battery impact minimal?
- No excessive heat generation?
4. Stability Audit:
- Crash reports reviewed?
- Edge cases tested?
- Network failure handling?
- Offline functionality?
5. Privacy Manifest Technical:
- PrivacyInfo.xcprivacy exists?
- All required reason APIs declared?
- Third-party SDK signatures?
- Tracking domains listed?
Current Requirements (December 2025)
SDK Requirements:
- Xcode 16 or later
- iOS 18 / iPadOS 18 / tvOS 18 / visionOS 2 / watchOS 11 SDK
- Apps submitted after April 2025 must meet this
Privacy Manifest:
- Mandatory since May 2024
- Must declare all data types
- Must justify required reason APIs
- Third-party SDKs must have manifests and signatures
Performance Standards
Prohibited:
- Cryptocurrency mining on device
- Rapid battery drain
- Excessive heat generation
- Excessive write cycles
- Unrelated background processes
Required:
- Reasonable launch time (<5 seconds warm launch)
- Responsive UI (no frozen frames)
- Proper memory management
- Graceful degradation on older devices
Device Compatibility
iPhone Apps on iPad:
- Should run on iPad whenever possible
- Declare compatibility correctly
- Test on iPad if supported
Universal Apps:
- Provide appropriate UI for each platform
- Use size classes correctly
- Support all orientations when appropriate
Third-Party SDK Compliance
Required:
- SDKs must have privacy manifests
- SDKs must be signed
- Check Apple's list of SDKs requiring manifests
- Verify SDKs are updated
Tone
Technical expert. Precise about requirements. Knows exactly what Xcode version, what SDK, what settings. Never vague about technical specs.
---
SENTINEL — Deadline Tracker
Expertise: Review timeline expert, submission strategist, knows Apple's calendar
Purpose: Plan submission timing and track review status. Optimize for fastest approval.
Behavior Protocol
1. Review Time Estimation:
- First submission vs update?
- App complexity?
- Time of year?
- Category?
2. Submission Timing:
- Avoid holiday freezes
- Account for weekends
- Plan for rejection possibility
- Buffer before hard deadlines
3. Status Tracking:
- Monitor App Store Connect
- Interpret status messages
- Predict next steps
- Alert on changes
4. Expedited Review:
- Eligible scenarios
- How to request
- Success likelihood
- Alternative strategies
Typical Review Times
| Scenario | Typical Time |
|---|---|
| First submission | 24-48 hours |
| App updates | 24 hours |
| Simple apps | 24 hours |
| Complex apps | Up to 7 days |
| Games | 24-72 hours |
| Kids category | 48-72 hours |
Holiday Submission Freeze
Apple's annual freeze:
- December 23-27 (typically)
- No new submissions processed
- Updates may be delayed
- Plan accordingly for holiday releases
Expedited Review Eligibility
Valid reasons:
- Critical bug fix affecting users
- Time-sensitive event (conference, launch)
- Security vulnerability
- Legal/regulatory requirement
How to request:
- App Store Connect → Contact Us → Expedite App Review
- Provide clear justification
- Not guaranteed to be approved
App Store Connect Statuses
| Status | Meaning |
|---|---|
| Waiting for Review | In queue, not yet assigned |
| In Review | Actively being reviewed |
| Pending Developer Release | Approved, waiting for you to release |
| Ready for Sale | Live on App Store |
| Rejected | Failed review, action needed |
| Metadata Rejected | Only metadata needs fixes |
Tone
Strategic planner. Always thinking ahead. Helps avoid last-minute scrambles. Tracks everything precisely.
---
FIXER — Rejection Recovery
Expertise: Appeals specialist, successful rejection resolution, knows Resolution Center inside out
Purpose: Handle rejections and communicate with App Review. Turn rejections into approvals efficiently.
Behavior Protocol
1. Rejection Analysis:
- What exactly was cited?
- Which guideline number?
- Is this correct?
- What's the fastest fix?
2. Response Strategy:
- Fix and resubmit, or
- Appeal the decision, or
- Request clarification
3. Draft Communication:
- Clear and professional
- Address specific concerns
- Explain changes made
- Request guidance if unclear
4. Document for Prevention:
- What caused this?
- How to prevent next time?
- Update checklists
Rejection Types
Binary Rejection:
- App fails review completely
- Must fix and resubmit
- Most common type
Metadata Rejection:
- Only metadata issues
- Can fix without new build
- Faster to resolve
When to Appeal vs Fix
APPEAL when:
- You believe the rejection is incorrect
- The guideline doesn't apply
- You have documentation supporting compliance
- The reviewer may have misunderstood
FIX AND RESUBMIT when:
- The rejection is valid
- The fix is straightforward
- Faster than arguing
Effective Communication
DO:
- Be professional and polite
- Reference specific guideline numbers
- Explain exactly what you changed
- Provide additional context if helpful
- Ask clarifying questions if confused
DON'T:
- Be argumentative
- Blame the reviewer
- Repeat the same submission without changes
- Ignore the stated reason
- Submit multiple appeals for same issue
Resolution Center Tips
- Respond promptly (within 24-48 hours ideal)
- Use the app notes for additional context
- Provide demo accounts with full access
- Include screenshots/videos if helpful
- Be specific about what was changed
Common Rejection Fixes
| Rejection Reason | Typical Fix |
|---|---|
| Privacy violation | Update privacy manifest, labels |
| Crashes | Fix bug, test thoroughly |
| Metadata mismatch | Update screenshots/description |
| Missing demo account | Provide working credentials |
| IAP issues | Correct StoreKit implementation |
| UGC without moderation | Add filtering/reporting/blocking |
Tone
Problem solver. Stays calm under pressure. Finds the fastest path to approval. Never adversarial with Apple.
---
MENTOR — Teaching Partner
Expertise: Experienced iOS publisher, 100+ apps shipped, educator
Purpose: Build App Store publishing proficiency. Help users understand not just what, but why.
Behavior Protocol
1. Meet Them Where They Are:
- Assess current knowledge
- Don't assume expertise
- Build from foundations
2. Explain in Context:
- Connect to their specific app
- Use real examples
- Make it practical
3. Progressive Learning:
- Foundation → intermediate → advanced
- Don't overwhelm
- Build systematically
4. Why, Not Just What:
- Why does Apple care?
- What's the history?
- What problem does it solve?
Teaching Topics
Level 1: Foundations
- [ ] What the App Store Review Guidelines are
- [ ] How the review process works
- [ ] Basic metadata requirements
- [ ] Privacy fundamentals
- [ ] TestFlight vs production
Level 2: Operations
- [ ] Complete metadata optimization
- [ ] Privacy manifest creation
- [ ] IAP implementation
- [ ] Subscription setup
- [ ] Screenshot creation
Level 3: Optimization
- [ ] ASO strategies
- [ ] A/B testing listings
- [ ] Commission optimization
- [ ] Review time optimization
- [ ] Multi-region strategies
Level 4: Mastery
- [ ] Edge case navigation
- [ ] Appeal strategies
- [ ] Enterprise considerations
- [ ] Platform expansion (visionOS, watchOS)
- [ ] Pre-launch optimization
Common Questions Explained
"Why does Apple require IAP for digital goods?" Apple built the platform, maintains the App Store, handles payments, and provides developer tools. The 30%/15% commission funds this ecosystem. It also provides user trust—purchases are secure, refundable, and consistent across apps.
"Why are privacy manifests required?" Apple positions itself as privacy-first. Privacy manifests ensure transparency about data collection. They help Apple verify privacy nutrition label accuracy and prevent hidden data practices.
"Why is the review process so strict?" Apple curates the App Store to maintain user trust. Unlike open platforms, users expect every app to be safe, functional, and honest. Strict review protects this trust.
Tone
Patient guide. Celebrates questions. Never condescending. Remembers what it was like to not know. Makes complex approachable.
---
ID8Pipeline Integration
Stage 9: Launch Prep — HARD GATE
Before advancing to Stage 10 (Ship), the following must pass:
Required Checkpoints:
[ ] REVIEWER: Full compliance audit — no HIGH RISK issues
[ ] DESIGNER: HIG compliance verified — no blocking violations
[ ] PRIVACY: Privacy audit passed — manifest complete, labels accurate
[ ] COMMERCE: IAP implementation correct (if applicable)
[ ] METADATA: App Store listing validated — all specs met
[ ] TECHNICAL: Build requirements met — SDK/Xcode currentCheckpoint Question: "Have all App Store readiness checks passed? Can you confirm no blocking issues exist?"
If blocked:
- List blocking issues with guideline numbers
- Provide fix paths for each
- Cannot proceed until resolved
Stage 10: Ship — Submission Support
Pre-Submission:
- SENTINEL determines optimal timing
- Final checklist verification
- Submission executed
During Review:
- SENTINEL monitors status
- Prepare for possible rejection
If Rejected:
- FIXER analyzes rejection
- Drafts response
- Guides resubmission
If Approved:
- METADATA can optimize based on performance
- Document lessons learned
---
Reference Files
Detailed expertise in references/:
| File | Contents |
|---|---|
app-store-review-guidelines.md | Complete 5-section guideline breakdown |
human-interface-guidelines.md | iOS HIG essentials and patterns |
privacy-requirements.md | ATT, labels, manifests, policies |
in-app-purchase-rules.md | When IAP required, implementation |
subscription-guidelines.md | Auto-renewable subscription rules |
screenshot-metadata-specs.md | Screenshot sizes, metadata rules |
common-rejection-reasons.md | Top rejections and prevention |
technical-requirements.md | SDK, performance, compatibility |
pre-submission-checklist.md | Final readiness checklist |
---
Official Documentation
| Resource | URL |
|---|---|
| Review Guidelines | https://developer.apple.com/app-store/review/guidelines/ |
| Human Interface Guidelines | https://developer.apple.com/design/human-interface-guidelines/ |
| App Store Connect | https://developer.apple.com/help/app-store-connect/ |
| Screenshot Specs | https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications/ |
| Privacy Manifests | https://developer.apple.com/documentation/bundleresources/privacy-manifest-files |
| In-App Purchase | https://developer.apple.com/in-app-purchase/ |
| Subscriptions | https://developer.apple.com/app-store/subscriptions/ |
| User Privacy | https://developer.apple.com/app-store/user-privacy-and-data-use/ |
| Third-Party SDK Requirements | https://developer.apple.com/support/third-party-SDK-requirements/ |
---
This skill is maintained for iOS App Store compliance. Guidelines change—always verify against current Apple documentation.
iOS App Store Readiness — Expert Command Center
You are the operating system for iOS App Store submission and approval. You have 9 specialized agents providing senior App Review Team-level expertise across all aspects of App Store publishing.
Quick Reference
┌─────────────────────────────────────────────────────────────┐
│ iOS App Store Readiness Center │
├─────────────────────────────────────────────────────────────┤
│ Platform: iOS / iPadOS / watchOS / tvOS / visionOS │
│ Guidelines: App Store Review Guidelines (Nov 2025) │
│ SDK Required: Xcode 16, iOS 18 SDK (as of Apr 2025) │
│ Review Time: 24-48 hours typical, up to 7 days possible │
├─────────────────────────────────────────────────────────────┤
│ Primary Goal: First-submission approval │
│ Pipeline: ID8Pipeline Stage 9 (Launch Prep) gate │
│ Success: Pass all readiness checks before Stage 10 │
└─────────────────────────────────────────────────────────────┘Expert Agent Roster
| Agent | Role | Invoke When |
|---|---|---|
| Reviewer | Compliance Auditor | "Will this pass?", app review simulation |
| Designer | HIG Expert | UI/UX review, design compliance |
| Privacy | Data Guardian | ATT, privacy labels, data collection |
| Commerce | IAP Strategist | Payments, subscriptions, commissions |
| Metadata | ASO Specialist | Screenshots, descriptions, keywords |
| Technical | Build Engineer | SDK requirements, performance, stability |
| Sentinel | Deadline Tracker | Submission timing, review status |
| Fixer | Rejection Recovery | Rejection responses, appeals |
| Mentor | Teaching Partner | Learning, explanations, context |
Quick Dispatch
reviewer: audit my app for approval
designer: check my UI against HIG
privacy: review my data collection
commerce: is my IAP implementation correct?
metadata: optimize my app store listing
technical: check my build requirements
sentinel: when should I submit?
fixer: we got rejected, help me respond
mentor: explain why Apple requires XContext Detection
Auto-invoke based on keywords:
| Keywords | Agent |
|---|---|
| "app review", "will this pass", "rejection risk" | Reviewer |
| "HIG", "design guidelines", "UI review" | Designer |
| "privacy manifest", "ATT", "tracking", "privacy labels" | Privacy |
| "in-app purchase", "IAP", "subscription", "StoreKit" | Commerce |
| "screenshots", "description", "keywords", "ASO" | Metadata |
| "Xcode", "SDK", "crashes", "performance" | Technical |
| "submit", "review time", "expedited" | Sentinel |
| "rejected", "appeal", "resolution center" | Fixer |
| "explain", "teach me", "why does Apple" | Mentor |
Agent Behaviors (Summary)
REVIEWER — Senior App Review perspective
- Systematically checks all 5 guideline sections
- Flags specific rule numbers for violations
- Assesses rejection probability
- Generates pre-submission report
DESIGNER — Apple Design Evangelist
- Reviews against Human Interface Guidelines
- Checks accessibility, Dynamic Type, Dark Mode
- Flags "feels wrong" patterns
- iOS-specific design expertise
PRIVACY — Compliance Specialist
- Audits all data collection points
- Verifies privacy manifest completeness
- Checks ATT implementation
- Reviews privacy nutrition labels
COMMERCE — App Store Business Expert
- Determines if IAP is required
- Reviews subscription implementation
- Checks price display requirements
- Identifies commission optimization
METADATA — ASO Expert
- Reviews app name (30 char limit)
- Audits screenshots and previews
- Optimizes description and keywords
- Validates age rating accuracy
TECHNICAL — Build Engineer
- Verifies Xcode/SDK version compliance
- Checks device compatibility
- Reviews performance characteristics
- Validates privacy manifest technical implementation
SENTINEL — Timeline Strategist
- Estimates review time
- Plans submission timing
- Tracks review status
- Advises on expedited reviews
FIXER — Appeals Specialist
- Analyzes rejection reasons
- Drafts effective responses
- Guides Resolution Center communication
- Documents for prevention
MENTOR — Patient Teacher
- Explains concepts in plain language
- Provides context for rules
- Builds progressive understanding
- Celebrates questions
ID8Pipeline Integration
Stage 9: Launch Prep (HARD GATE)
Required Checkpoints Before Stage 10:
- [ ] REVIEWER: Full compliance audit passed
- [ ] DESIGNER: HIG compliance verified
- [ ] PRIVACY: Privacy audit passed
- [ ] COMMERCE: IAP implementation correct (if applicable)
- [ ] METADATA: App Store listing validated
- [ ] TECHNICAL: Build requirements met
Checkpoint Question: "Have all App Store readiness checks passed?"
Stage 10: Ship
- SENTINEL tracks submission and review
- FIXER handles any rejection
- METADATA optimizes based on performance data
Key Facts
Current Requirements (Dec 2025):
- Xcode 16 or later required
- iOS 18 SDK required
- Privacy manifests mandatory (since May 2024)
- App name: 30 characters maximum
- Screenshots: Must show app in use
Commission Rates:
- Standard: 30% Apple / 70% developer
- After 1 year subscriber retention: 15% Apple / 85% developer
- Small Business Program (<$1M revenue): 15% from start
Review Timeline:
- First submission: 24-48 hours typical
- Updates: 24 hours typical
- Expedited: Available for critical issues
Top Rejection Reasons: 1. Privacy violations (missing manifests, incorrect labels) 2. Crashes and bugs 3. Performance issues 4. Inaccurate metadata 5. Broken login/onboarding
Reference Files
Detailed expertise in references/:
| File | Contents |
|---|---|
app-store-review-guidelines.md | Complete 5-section guideline breakdown |
human-interface-guidelines.md | iOS HIG essentials and patterns |
privacy-requirements.md | ATT, labels, manifests, policies |
in-app-purchase-rules.md | When IAP required, implementation |
subscription-guidelines.md | Auto-renewable subscription rules |
screenshot-metadata-specs.md | Screenshot sizes, metadata rules |
common-rejection-reasons.md | Top rejections and prevention |
technical-requirements.md | SDK, performance, compatibility |
pre-submission-checklist.md | Final readiness checklist |
Communication Style
- Expert but approachable — Senior knowledge, clear delivery
- Specific rule numbers — Reference exact guidelines (e.g., "Guideline 2.3.7")
- Action-oriented — Not just "this is wrong" but "here's how to fix it"
- Confidence-calibrated — Clear about certainty levels
- Prevention-focused — Catch issues before submission
Commands
| Command | Purpose |
|---|---|
/appstore-readiness | Full comprehensive audit |
/appstore-review | Quick compliance check |
/appstore-submit | Step-by-step submission guide |
Official Documentation Links
| Resource | URL |
|---|---|
| Review Guidelines | https://developer.apple.com/app-store/review/guidelines/ |
| Human Interface Guidelines | https://developer.apple.com/design/human-interface-guidelines/ |
| App Store Connect | https://developer.apple.com/help/app-store-connect/ |
| Screenshot Specs | https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications/ |
| Privacy Manifests | https://developer.apple.com/documentation/bundleresources/privacy-manifest-files |
| In-App Purchase | https://developer.apple.com/in-app-purchase/ |
| Subscriptions | https://developer.apple.com/app-store/subscriptions/ |
| User Privacy | https://developer.apple.com/app-store/user-privacy-and-data-use/ |
iOS App Store Readiness Skill
Expert iOS App Store submission and approval system with 9 specialized agents to ensure first-submission approval.
Overview
This skill provides comprehensive App Store compliance checking, drawing from Apple's official guidelines to help iOS apps pass App Review on the first attempt. It integrates with the ID8Pipeline as a hard gate at Stage 9 (Launch Prep).
Quick Start
# Full audit before submission
/appstore-readiness
# Quick compliance check during development
/appstore-review
# Step-by-step submission guide
/appstore-submitAgent Roster
| Agent | Role | When to Use |
|---|---|---|
| REVIEWER | Compliance Auditor | "Will this pass review?", "Check my app" |
| DESIGNER | HIG Expert | UI/UX review, design compliance |
| PRIVACY | Data Guardian | ATT, privacy labels, privacy manifest |
| COMMERCE | IAP Strategist | Payments, subscriptions, commissions |
| METADATA | ASO Specialist | Screenshots, descriptions, keywords |
| TECHNICAL | Build Engineer | SDK requirements, performance, crashes |
| SENTINEL | Deadline Tracker | Submission timing, expedited reviews |
| FIXER | Rejection Recovery | Appeals, rejection responses |
| MENTOR | Teaching Partner | Explains why rules exist |
Trigger Keywords
The skill activates automatically when discussing:
app store,iOS submission,apple review,app rejectionaso,app store optimization,screenshotsprivacy manifest,privacy labels,ATT,app trackingiap,in-app purchase,subscription,storekitreview guidelines,HIG,human interfacetestflight,app store connect
ID8Pipeline Integration
Stage 9: Launch Prep (Hard Gate)
Before advancing to Stage 10 (Ship), projects must pass the App Store readiness audit:
/appstore-readinessRequired checkpoints:
- [ ] Privacy audit passed (PRIVACY agent)
- [ ] HIG compliance verified (DESIGNER agent)
- [ ] Technical requirements met (TECHNICAL agent)
- [ ] Metadata validated (METADATA agent)
- [ ] Full review simulation passed (REVIEWER agent)
Stage 10: Ship
- SENTINEL tracks submission and review status
- FIXER handles any rejection
- METADATA optimizes based on performance
Reference Documentation
The references/ folder contains comprehensive guidelines (~100KB total):
| Document | Contents |
|---|---|
app-store-review-guidelines.md | All 5 guideline sections with rule numbers |
human-interface-guidelines.md | iOS HIG essentials |
privacy-requirements.md | ATT, labels, manifests, third-party SDKs |
in-app-purchase-rules.md | When IAP is required, 7 exceptions |
subscription-guidelines.md | Auto-renewable subscription rules |
screenshot-metadata-specs.md | Device sizes, metadata requirements |
common-rejection-reasons.md | Top 10 rejections with prevention |
technical-requirements.md | SDK, Xcode, performance standards |
pre-submission-checklist.md | Final checklist before submission |
Current Requirements (as of 2025)
| Requirement | Value |
|---|---|
| Xcode | Version 16+ |
| iOS SDK | iOS 18 |
| Privacy Manifest | Required (since May 2024) |
| SDK Signatures | Required for all third-party SDKs |
Example Audit Output
┌─────────────────────────────────────────────────────┐
│ APP STORE READINESS AUDIT │
├─────────────────────────────────────────────────────┤
│ App: MyApp │
│ Date: 2025-01-15 │
│ Pipeline Stage: 9 - Launch Prep │
├─────────────────────────────────────────────────────┤
│ OVERALL STATUS: READY │
│ Approval Probability: HIGH │
└─────────────────────────────────────────────────────┘
TECHNICAL ✅ PASS
PRIVACY ✅ PASS
DESIGN ⚠️ WARNINGS
MONETIZATION ✅ PASS
METADATA ✅ PASS
REVIEW SIM ✅ PASSFile Structure
~/.claude/skills/appstore-readiness/
├── README.md # This file
├── CLAUDE.md # Quick reference & dispatch patterns
├── SKILL.md # Complete agent specifications
└── references/
├── app-store-review-guidelines.md
├── human-interface-guidelines.md
├── privacy-requirements.md
├── in-app-purchase-rules.md
├── subscription-guidelines.md
├── screenshot-metadata-specs.md
├── common-rejection-reasons.md
├── technical-requirements.md
└── pre-submission-checklist.mdRelated Commands
~/.claude/commands/
├── appstore-readiness.md # Full audit workflow
├── appstore-review.md # Quick check
└── appstore-submit.md # Submission guideContributing
This skill is maintained as part of the ID8Labs Claude settings. To update:
1. Edit reference docs when Apple updates guidelines 2. Update SKILL.md for agent behavior changes 3. Test with /appstore-readiness on a real project 4. Commit and push to claude-settings repo
Official Apple Resources
---
Built for ID8Labs to achieve first-submission App Store approval.
App Store Review Guidelines — Complete Reference
Official URL: https://developer.apple.com/app-store/review/guidelines/ Last Updated: November 2025
The App Store Review Guidelines are organized into five main sections. This document provides the complete breakdown with specific rule numbers, requirements, and common violation patterns.
---
Section 1: Safety
1.1 Objectionable Content
| Guideline | Requirement | Common Violations |
|---|---|---|
| 1.1.1 | No defamatory, discriminatory, or mean-spirited content targeting religion, race, sexual orientation, gender, national/ethnic origin, or other targeted groups | Hate speech in UGC, offensive memes, discriminatory filters |
| 1.1.2 | No realistic portrayals of violence, torture, death, or abuse | Graphic violence in games, torture simulations, animal cruelty |
| 1.1.3 | No content encouraging illegal weapon use or facilitating firearms purchases | Gun sales apps, weapon modification guides, 3D print weapon files |
| 1.1.4 | No overtly sexual or pornographic material | Adult content, explicit imagery, suggestive content in Kids category |
| 1.1.5 | No inflammatory religious commentary or inaccurate/misleading quotations of religious texts | Cult recruitment, religious mockery, misquoted scriptures |
| 1.1.6 | No false information or trick/joke functionality | Fake virus scanners, prank emergency calls, fake location trackers |
| 1.1.7 | No exploitation of recent tragedies (conflicts, terrorist attacks, epidemics) | Tragedy-themed games, insensitive content about current events |
1.2 User-Generated Content (UGC)
Apps with UGC MUST include:
| Requirement | Implementation |
|---|---|
| Content Filtering | Method for filtering objectionable material before posting |
| Reporting Mechanism | Mechanism to report offensive content with timely responses |
| Blocking Capability | Ability to block abusive users |
| Contact Information | Published contact information for content issues |
1.2.1 Creator Content:
- Apps must provide age restriction mechanisms based on verified or declared age
- Content creators must be able to limit access to age-appropriate audiences
1.3 Kids Category Requirements
Strict requirements for Kids category apps:
| Requirement | Details |
|---|---|
| No external links | Unless behind parental gate with age verification |
| No purchasing | Unless behind parental gate |
| No third-party analytics | Cannot collect personally identifiable information |
| Limited advertising | No third-party ads; limited contextual ads may be permitted |
| Privacy compliance | Must comply with COPPA and similar children's privacy laws |
1.4 Physical Harm
| Guideline | Requirement |
|---|---|
| 1.4.1 | Medical apps must disclose data/methodology for accuracy claims |
| 1.4.2 | Drug dosage calculators require FDA approval or come from approved entities |
| 1.4.3 | No apps encouraging tobacco, vape, illegal drugs, or excessive alcohol |
| 1.4.4 | No encouragement of reckless behavior |
| 1.4.5 | No apps that primarily promote gambling or lotteries |
1.5 Developer Information
- Must include accurate, up-to-date contact information
- Support URL must provide easy way to contact developer
- Cannot hide or obscure contact information
1.6 Data Security
- Must implement appropriate security measures for user data
- Prevent unauthorized access by third parties
- Use secure transmission (HTTPS) for sensitive data
- Implement appropriate encryption for stored data
---
Section 2: Performance
2.1 App Completeness
| Requirement | Details |
|---|---|
| Final version | Submissions must be final versions, not betas |
| Complete metadata | All fields filled, no placeholders |
| Bug-free | Tested on-device for crashes and stability |
| Demo account | If login required, provide working demo credentials |
| Live backend | Backend services must be live during review |
| Review notes | Explain non-obvious features or functionality |
2.2 Beta Testing
- Demos, betas, and trial versions belong on TestFlight
- TestFlight apps cannot be distributed for compensation
- Production App Store is for finished products only
2.3 Accurate Metadata
| Guideline | Requirement | Common Violations |
|---|---|---|
| 2.3.1 | No hidden, dormant, or undocumented features | Secret admin panels, hidden gambling, A/B tested illegal features |
| 2.3.2 | Clearly indicate if items require additional purchases | Hidden paywalls, surprise IAP requirements |
| 2.3.3 | Screenshots must show app in use | Using splash screens, login pages, or title art only |
| 2.3.4 | Previews may only use video screen captures | Using non-app footage, pre-rendered graphics |
| 2.3.5 | Select appropriate category | Wrong category to avoid competition |
| 2.3.6 | Answer age rating questions honestly | Underrating to reach wider audience |
| 2.3.7 | App names ≤30 characters; no keyword stuffing | "Best Photo Editor Camera Filter Gallery App" |
| 2.3.8 | Metadata must be appropriate for all audiences (4+) | Explicit content in description |
| 2.3.9 | Secure rights for all materials in icons/screenshots | Using copyrighted images without permission |
| 2.3.10 | No references to other mobile platforms in metadata | "Also available on Android" |
| 2.3.12 | "What's New" must describe significant changes | Using for marketing messages |
2.4 Hardware Compatibility
| Requirement | Details |
|---|---|
| iPad compatibility | iPhone apps should run on iPad whenever possible |
| Power efficiency | No rapid battery drain, excessive heat |
| No mining | No cryptocurrency mining on device |
| No system suggestions | Never suggest device restart or system modifications |
| API usage | Use only documented APIs for device capabilities |
---
Section 3: Business
3.1 Payments
3.1.1 In-App Purchase REQUIRED for:
- Unlocking features or functionality
- Subscriptions to digital content
- Game currencies
- Game levels
- Premium content
- Access to full version from "lite" version
- Ad removal
3.1.3 Exceptions (Other Payment Methods Allowed):
| Exception | Description |
|---|---|
| (a) Reader Apps | Magazines, newspapers, books, audio, music, video (previously purchased elsewhere) |
| (b) Multiplatform Services | Content purchased on other platforms |
| (c) Enterprise Services | B2B apps for organizations |
| (d) Person-to-Person Services | Real-time 1:1 services (tutoring, medical consultations) |
| (e) Physical Goods/Services | Consumed outside the app |
| (f) Free Stand-alone Companions | To paid web-based tools |
| (g) Advertising Management Apps | For managing ad campaigns |
3.1.4 Content Codes:
- Apps can sell codes for digital content purchased elsewhere
- Subscription gift cards allowed
3.1.5 Cryptocurrencies:
- Wallets allowed (must be from organization accounts)
- No on-device mining
- Exchanges only in properly licensed jurisdictions
- ICOs must come from established financial institutions
3.2 Unacceptable Business Models
| Prohibited | Examples |
|---|---|
| App Store-like interfaces | Creating alternate app stores |
| Artificial ad inflation | Manipulating impression counts |
| Ad-focused apps | Apps designed predominantly for ads |
| Location/carrier restrictions | Arbitrarily limiting users |
| Binary options trading | High-risk trading apps |
| Predatory lending | Personal loans >36% APR or <60 day repayment |
---
Section 4: Design
4.1 Copycats
- Must have original ideas
- Cannot impersonate other apps
- Cannot use another developer's icon, brand, or product name without approval
- "Inspired by" must be truly original execution
4.2 Minimum Functionality
| Requirement | Details |
|---|---|
| Beyond website | Must include features beyond a repackaged website |
| Lasting value | Must provide lasting entertainment value or adequate utility |
| Rich AR | ARKit apps must provide rich, integrated AR experiences |
| Not marketing | Apps cannot primarily be marketing materials or link collections |
| Web content | Web content that could be a website will be rejected |
4.3 Spam
- No multiple Bundle IDs of the same app
- Avoid saturated categories (fart apps, flashlight apps, etc.)
- Minor variations of the same app will be rejected
4.7 Mini Apps, Games, Chatbots, Emulators
| Requirement | Details |
|---|---|
| Privacy | Must follow all privacy guidelines |
| Content filtering | Must include content filtering and reporting |
| API restrictions | Cannot extend native platform APIs without permission |
| Data sharing | Cannot share data without explicit user consent |
| Indexing | Must provide index of software with universal links |
| Emulators | Allowed with content restrictions and author consent |
4.8 Login Services
If using third-party login (Facebook, Google, etc.), must ALSO offer:
- Another login option that limits data collection to name and email
- Option to keep email private
- No advertising data collection without consent
Exceptions:
- Company's own account system only
- Education/enterprise apps
- Government ID systems
- Clients for specific third-party services
4.9 Apple Pay
- Must disclose all purchase information before sale
- For recurring payments, must disclose: renewal term, what's provided, charges, how to cancel
4.10 Monetizing Built-In Capabilities
Cannot charge for access to:
- Push Notifications
- Camera or microphone
- Gyroscope or accelerometer
- Apple Music
- iCloud storage
- Screen Time APIs
- Any system-provided functionality
---
Section 5: Legal
5.1 Privacy
5.1.1 Data Collection and Storage:
- ALL apps must include privacy policy link
- Privacy policy must identify data collected, how collected, all uses
- Must confirm third parties provide equal protection
- Must explain data retention/deletion policies
- Must describe how to revoke consent
5.1.2 Data Use and Sharing:
- Cannot use data beyond stated purposes
- Cannot share with third parties not disclosed in privacy policy
- Cannot sell data to data brokers or advertising platforms
- Cannot gate features on tracking consent or incentivize tracking
5.1.3 Health and Research:
- Health apps must have ethics board approval
- Must provide data access and portability
- Must not share health data with third parties without consent
5.1.4 Kids:
- Cannot collect data from children without verifiable parental consent
- Must comply with COPPA and similar regulations
Privacy Manifests (Required since May 2024):
- Must declare all data types collected
- Must include "required reason APIs" usage justification
- Third-party SDKs must include their own privacy manifests
5.2 Intellectual Property
- Must have rights to all content
- Must respect third-party trademarks
- Must not infringe patents
- Music/video licensing must be verified
5.3 Gaming, Gambling, and Lotteries
| Requirement | Details |
|---|---|
| Real gambling | Only from licensed entities, geo-restricted |
| Simulated gambling | Allowed with age gates |
| Contests | Must clearly state rules, eligibility, prizes |
| Lotteries | Only from licensed operators |
5.6 Developer Code of Conduct
| Guideline | Requirement |
|---|---|
| 5.6.1 | Treat customers with respect |
| 5.6.2 | Provide verifiable, truthful information |
| 5.6.3 | No discovery fraud (manipulating charts, search, reviews) |
| 5.6.4 | Maintain app quality |
---
Quick Reference: Most Common Rule Violations
| Guideline | Issue | Prevention |
|---|---|---|
| 5.1.1 | Missing privacy policy | Include link in app and metadata |
| 2.3.3 | Bad screenshots | Show app in actual use |
| 2.1 | Crashes during review | Test on real devices |
| 3.1.1 | Wrong payment method | Use IAP for digital goods |
| 1.2 | UGC without moderation | Add filtering, reporting, blocking |
| 2.3.7 | App name too long | Keep under 30 characters |
| 5.1.2 | Privacy labels incorrect | Match labels to actual collection |
| 4.2 | Minimum functionality | Ensure utility beyond website |
---
Guidelines updated November 2025. Always verify against current Apple documentation.
Common Rejection Reasons — Complete Reference
This document covers the most common App Store rejection reasons and how to prevent them.
---
Top 10 Rejection Categories
1. Privacy Violations (Most Common)
Guidelines: 5.1.1, 5.1.2
| Issue | Description | Prevention |
|---|---|---|
| Missing privacy policy | No privacy policy link | Add link to app and App Store listing |
| Incomplete policy | Policy doesn't cover all data | Review all data collection points |
| Inaccurate nutrition labels | Labels don't match actual collection | Audit code and SDK data practices |
| Missing privacy manifest | No PrivacyInfo.xcprivacy | Create manifest with all declarations |
| ATT not implemented | Tracking without permission | Implement ATT prompt if tracking |
| SDK privacy issues | Third-party SDKs not compliant | Verify all SDKs have manifests |
Fix Priority: CRITICAL — Privacy is the #1 rejection reason since 2024.
---
2. Crashes and Bugs
Guideline: 2.1
| Issue | Description | Prevention |
|---|---|---|
| Crash on launch | App crashes during reviewer testing | Test on all device types |
| Crash on specific action | Feature causes crash | Test all user flows |
| Crash on specific device | Device-specific crash | Test on older devices too |
| Memory issues | App runs out of memory | Profile memory usage |
| Network-related crash | Crash without internet | Test offline scenarios |
Fix Actions: 1. Test on real devices (not just simulator) 2. Test on oldest supported iOS version 3. Test with poor network conditions 4. Use Xcode Instruments for profiling 5. Review crash logs from TestFlight
---
3. Performance Issues
Guideline: 2.4
| Issue | Description | Prevention |
|---|---|---|
| Slow launch | Takes too long to start | Optimize startup code |
| Battery drain | Excessive power usage | Audit background processes |
| Excessive heat | Device gets hot | Check CPU usage |
| Unresponsive UI | Interface freezes | Move work off main thread |
| Large app size | App too big for download | Optimize assets, use on-demand resources |
Fix Actions: 1. Profile with Xcode Instruments 2. Test on oldest supported device 3. Optimize images and assets 4. Use lazy loading where appropriate 5. Monitor background activity
---
4. Inaccurate Metadata
Guideline: 2.3
| Issue | Description | Prevention |
|---|---|---|
| Screenshots don't match | Screenshots show different UI | Update screenshots with each release |
| Misleading description | Claims features that don't exist | Only describe actual features |
| Wrong category | App in inappropriate category | Choose primary function category |
| Hidden features | Undocumented functionality | Describe all features in review notes |
| Incorrect age rating | Content rating too low | Answer questions honestly |
| Name too long | Exceeds 30 characters | Shorten app name |
| Keyword stuffing | "Best Photo Editor Camera Filter App" | Use clean, descriptive name |
Fix Actions: 1. Review all metadata before submission 2. Update screenshots with every UI change 3. Be honest about features and ratings 4. Use review notes for non-obvious features
---
5. Broken Login/Demo Account
Guideline: 2.1
| Issue | Description | Prevention |
|---|---|---|
| No demo account | Login required but no test credentials | Provide working demo account |
| Demo account broken | Credentials don't work | Test demo account before submission |
| Limited demo access | Demo can't access all features | Ensure demo has full access |
| Demo expired | Account timed out during review | Use account that doesn't expire |
| Demo needs verification | 2FA or email verification required | Disable for demo or provide all info |
Demo Account Best Practices:
Username: demo@yourapp.com
Password: AppReview2025!
Notes: Full access, no 2FA required
If 2FA required, verification code: 123456---
6. Payment System Violations
Guideline: 3.1.1, 3.1.2
| Issue | Description | Prevention |
|---|---|---|
| External payment for digital | Using Stripe/PayPal for in-app content | Use IAP for digital goods |
| Linking to external purchase | "Buy on our website" links | Remove external payment links |
| Wrong IAP type | Using consumable for permanent feature | Use correct IAP type |
| No restore purchases | Can't recover previous purchases | Implement restore functionality |
| Subscription UI issues | Price not prominent, missing disclosures | Follow HIG subscription requirements |
| Misleading pricing | Per-day pricing for monthly subscription | Show actual billing price |
Note: Some apps qualify for exceptions (see in-app-purchase-rules.md for exceptions).
---
7. Incomplete Information
Guideline: 2.1
| Issue | Description | Prevention |
|---|---|---|
| Missing support URL | No way to contact developer | Provide valid support URL |
| Broken support URL | URL doesn't work | Test URL before submission |
| Placeholder content | Lorem ipsum, TBD text | Complete all content |
| Missing review notes | No explanation for reviewers | Explain non-obvious features |
| Backend not accessible | Server down during review | Ensure backend is live |
Review Notes Best Practices:
- Explain any non-obvious features
- Provide demo account credentials
- Explain any special hardware requirements
- Note if app requires specific conditions to test
- Mention any features that might seem unusual
---
8. Design Issues
Guideline: 4.2
| Issue | Description | Prevention |
|---|---|---|
| Minimum functionality | App is just a website wrapper | Add native functionality |
| Too simple | App lacks adequate utility | Ensure meaningful features |
| Copycat | Too similar to existing app | Create original experience |
| Marketing app | App is just a catalog/brochure | Add interactive functionality |
| Web-only content | Could just be a website | Leverage native capabilities |
Minimum Functionality Requirements:
- Must do more than display web content
- Must provide lasting entertainment or utility
- Must not be primarily marketing material
- Must not be a simple repackaged website
---
9. UGC Without Moderation
Guideline: 1.2
| Issue | Description | Prevention |
|---|---|---|
| No content filtering | UGC posted without review | Implement filtering |
| No reporting mechanism | Users can't report content | Add report functionality |
| No blocking capability | Users can't block others | Add block functionality |
| No contact information | No way to report issues | Publish contact info |
| Slow moderation | Reports not addressed | Implement timely response |
UGC Requirements Checklist:
- [ ] Content filtering before posting
- [ ] Report button on all user content
- [ ] Block user functionality
- [ ] Published contact information
- [ ] Timely response to reports
- [ ] Age verification for mature content
---
10. Kids Category Violations
Guideline: 1.3
| Issue | Description | Prevention |
|---|---|---|
| External links | Links leaving app | Remove or put behind parental gate |
| In-app purchases exposed | Purchase without parental gate | Add parental gate |
| Third-party advertising | Ads from ad networks | Remove third-party ads |
| Analytics tracking | Collecting identifying info | Use privacy-safe analytics |
| Account creation | Email/password signup for children | Follow COPPA requirements |
Kids Category Rules:
- No links out of app (unless parental gated)
- No purchasing (unless parental gated)
- No third-party analytics collecting PII
- No third-party advertising
- Must comply with COPPA, GDPR-K
---
Rejection Response Guide
When You're Rejected
1. Read carefully — Understand exact rejection reason 2. Don't panic — Most rejections are fixable 3. Identify guideline — Know which rule was violated 4. Plan fix — Determine fastest path to approval 5. Respond or resubmit — Choose appropriate action
When to Fix and Resubmit
| Scenario | Action |
|---|---|
| Valid rejection | Fix issue and resubmit |
| Clear mistake | Fix immediately |
| Simple fix | Faster to fix than appeal |
| Multiple issues | Fix all before resubmitting |
When to Appeal
| Scenario | Action |
|---|---|
| Rejection seems incorrect | Appeal with evidence |
| Guideline misapplied | Explain why it doesn't apply |
| Need clarification | Ask for specific guidance |
| Have documentation | Show compliance evidence |
How to Communicate with App Review
DO:
- Be professional and polite
- Reference specific guideline numbers
- Explain exactly what you changed
- Provide additional context if helpful
- Ask clarifying questions if confused
DON'T:
- Be argumentative or hostile
- Blame the reviewer
- Resubmit without changes
- Ignore the stated reason
- Submit multiple appeals for same issue
Response Template
Hi App Review Team,
Thank you for your feedback regarding [App Name] (Version X.X).
I understand the rejection was related to Guideline [X.X.X] concerning [issue].
I have made the following changes to address this:
1. [Specific change made]
2. [Specific change made]
3. [Specific change made]
[If applicable: Here is additional context that may be helpful: ...]
Please let me know if you need any additional information.
Best regards,
[Your Name]---
Prevention Strategies
Pre-Submission Testing
| Test | Details |
|---|---|
| Device testing | Test on multiple real devices |
| iOS version testing | Test on minimum and current iOS |
| Network testing | Test with poor/no connectivity |
| Edge case testing | Test unusual user flows |
| Accessibility testing | Test with VoiceOver, Dynamic Type |
Metadata Review
| Check | Details |
|---|---|
| Screenshots current | Match actual app UI |
| Description accurate | All claims are true |
| Age rating honest | Answered truthfully |
| Support URL works | Tested and accessible |
| Demo account works | Tested before submission |
Privacy Audit
| Check | Details |
|---|---|
| Privacy manifest | Complete and accurate |
| Privacy labels | Match actual collection |
| Privacy policy | Comprehensive and accessible |
| ATT implemented | If tracking users |
| SDK compliance | All SDKs have manifests |
Business Model Review
| Check | Details |
|---|---|
| IAP required | Using IAP for digital goods |
| Exceptions apply | If not using IAP, have valid exception |
| Subscription UI | Meets all HIG requirements |
| Pricing clear | No misleading pricing |
---
Quick Reference: Rejection → Fix
| Rejection Reason | Fix |
|---|---|
| Privacy policy missing | Add link to app and listing |
| Privacy manifest missing | Create PrivacyInfo.xcprivacy |
| Privacy labels incorrect | Audit code, update labels |
| App crashes | Debug, fix, test on real devices |
| Slow performance | Profile with Instruments, optimize |
| Screenshots don't match | Update screenshots |
| No demo account | Provide working credentials |
| External payment | Switch to IAP |
| No restore purchases | Implement restore functionality |
| Support URL broken | Fix URL, test accessibility |
| Minimum functionality | Add meaningful features |
| UGC without moderation | Add filtering/reporting/blocking |
| Kids category violation | Remove ads, links, or add parental gate |
---
Rejection patterns evolve. Always verify against current Apple documentation.
Human Interface Guidelines (iOS) — Reference
Official URL: https://developer.apple.com/design/human-interface-guidelines/
This document covers the essential iOS Human Interface Guidelines that affect App Store approval and user experience quality.
---
Core Design Principles
The Three Pillars
| Principle | Meaning | Implementation |
|---|---|---|
| Clarity | Text is legible at every size, icons are precise and lucid, adornments are subtle and appropriate | Use SF Pro or SF Compact, proper contrast ratios, clear iconography |
| Deference | Fluid motion and a crisp, beautiful interface help people understand and interact with content while never competing with it | Content-first design, minimal chrome, purposeful motion |
| Depth | Distinct visual layers and realistic motion impart vitality and heighten people's delight and understanding | Proper use of materials, shadows, and hierarchy |
---
Designing for iOS
Device Characteristics
| Aspect | iOS Behavior |
|---|---|
| Display | Medium-size, high-resolution |
| Ergonomics | One or both hands, portrait/landscape switching |
| Inputs | Multi-Touch gestures, virtual keyboards, voice control, pencil |
| Interactions | Brief (1-2 min) to extended (1+ hour) sessions |
Best Practices
1. Limit onscreen controls — Focus on primary tasks/content, not UI chrome 2. Adapt to appearance changes — Support device orientation, Dark Mode, Dynamic Type 3. Support comfortable interactions — Controls in middle/bottom of display are easier to reach 4. Integrate platform capabilities — Payments, biometric auth, location (with permission)
---
Navigation Patterns
Tab Bar
| Requirement | Details |
|---|---|
| Item count | 2-5 tabs (more requires "More" tab) |
| Purpose | Top-level navigation between parallel sections |
| NOT for | Actions, modal operations, single-use functions |
| Position | Bottom of screen, always visible |
| Icons | Filled = selected, outline = unselected |
Navigation Bar
| Requirement | Details |
|---|---|
| Back button | Left side, must return to previous screen |
| Title | Center, describes current content |
| Actions | Right side, contextual actions |
| Behavior | Shows hierarchy, enables back navigation |
Modal Presentations
| Use Case | When Appropriate |
|---|---|
| Full screen | Immersive tasks, content creation |
| Sheet | Focused tasks that require dismissal |
| Popover | iPad, additional options without navigation |
| Alert | Critical information requiring acknowledgment |
Sheet Height Options:
.medium— Half screen.large— Full screen- Custom detents available
---
Controls and Interactions
Touch Targets
| Requirement | Minimum Size |
|---|---|
| Tappable elements | 44pt × 44pt minimum |
| Buttons | 44pt height recommended |
| List rows | 44pt height minimum |
| Interactive areas | Include padding around visual element |
Button Styles
| Style | Use Case |
|---|---|
| Filled | Primary actions |
| Tinted | Secondary actions |
| Gray | Tertiary/destructive |
| Plain | In-content links |
| Bordered | Less emphasis than filled |
Form Inputs
| Element | Best Practice |
|---|---|
| Text fields | Clear label, placeholder text, appropriate keyboard |
| Pickers | Native pickers for dates, times, selections |
| Toggles | For binary on/off states |
| Steppers | For small numeric adjustments |
| Sliders | For continuous value ranges |
---
Typography
System Fonts
| Font | Use Case |
|---|---|
| SF Pro | iOS default |
| SF Compact | Apple Watch, widgets |
| SF Mono | Code, monospace content |
| SF Symbols | Icons and symbols |
Text Styles (Dynamic Type)
| Style | Purpose |
|---|---|
| Large Title | Screen titles, navigation |
| Title 1-3 | Section headers |
| Headline | Important information |
| Body | Main content |
| Callout | Secondary content |
| Subhead | Tertiary content |
| Footnote | Fine print, captions |
| Caption 1-2 | Labels, metadata |
Dynamic Type Requirements
- Must support text scaling from accessibility settings
- Use system text styles or custom styles with proper scaling
- Test at all sizes — especially largest accessibility sizes
- Don't clip text — allow multiline or truncation
---
Color
System Colors
| Category | Examples |
|---|---|
| Label | .label, .secondaryLabel, .tertiaryLabel, .quaternaryLabel |
| Fill | .systemFill, .secondarySystemFill, .tertiarySystemFill |
| Background | .systemBackground, .secondarySystemBackground, .tertiarySystemBackground |
| Tint | App accent color, adaptable to Dark Mode |
Color Requirements
| Requirement | Details |
|---|---|
| Contrast ratios | 4.5:1 for normal text, 3:1 for large text |
| Dark Mode support | Colors must adapt or use semantic colors |
| Color blindness | Don't rely solely on color to convey information |
| System integration | Respect user's accent color preferences |
---
Dark Mode
Requirements
| Aspect | Light Mode | Dark Mode |
|---|---|---|
| Background | Light colors | Dark colors |
| Text | Dark colors | Light colors |
| Images | Standard | May need adjustment |
| Icons | Standard | May need light variant |
| Elevation | Shadows | Lighter backgrounds |
Implementation
- Use semantic colors (
.label,.systemBackground) - Provide asset variants for both appearances
- Test all screens in both modes
- Don't use pure black backgrounds (use
.systemBackground) - Increase elevation with lighter tones, not shadows
---
Accessibility
Required Support
| Feature | Requirement |
|---|---|
| VoiceOver | All interactive elements must be accessible |
| Dynamic Type | Text must scale with user preferences |
| Reduce Motion | Provide alternatives to complex animations |
| Color | Don't rely solely on color for meaning |
| Touch Accommodations | Respect user's touch settings |
VoiceOver Best Practices
- Provide meaningful accessibility labels
- Use accessibility hints for additional context
- Group related elements with accessibility containers
- Ensure logical reading order
- Test with VoiceOver enabled
Reduce Motion
When user enables Reduce Motion:
- Replace complex animations with fades or crossfades
- Reduce parallax effects
- Limit auto-playing video/animation
- Provide static alternatives
---
Layout
Safe Areas
| Area | Requirement |
|---|---|
| Top safe area | Account for notch, Dynamic Island |
| Bottom safe area | Account for Home indicator |
| Keyboard | Adjust layout when keyboard appears |
| Navigation elements | Don't overlap with system UI |
Orientation
| Orientation | When to Support |
|---|---|
| Portrait only | Simple utilities, messaging apps |
| Landscape only | Games, video players |
| Both | Most apps (recommended) |
Size Classes
| Size Class | Devices |
|---|---|
| Compact width | iPhone portrait, split-screen secondary |
| Regular width | iPad, iPhone landscape, split-screen primary |
| Compact height | iPhone landscape |
| Regular height | iPhone portrait, iPad |
---
Icons and Images
App Icon Requirements
| Platform | Size | Notes |
|---|---|---|
| App Store | 1024×1024 pt | Required, no transparency |
| iPhone | Multiple sizes | Auto-generated from 1024 |
| iPad | Multiple sizes | Auto-generated from 1024 |
SF Symbols
- Use SF Symbols for system-consistent iconography
- Over 4,000 symbols available
- Automatically scale with Dynamic Type
- Support multiple rendering modes (monochrome, hierarchical, palette, multicolor)
Image Requirements
- Provide @1x, @2x, @3x assets
- Use vector assets when possible
- Support Dark Mode variants
- Consider memory usage for large images
---
Gestures
Standard Gestures
| Gesture | System Behavior |
|---|---|
| Tap | Activate control |
| Drag | Scroll, move, adjust |
| Swipe | Navigate, delete (swipe actions) |
| Pinch | Zoom in/out |
| Rotate | Rotate content |
| Long press | Context menu, edit mode |
| Edge swipe | Back navigation (left edge) |
Custom Gestures
- Don't override system gestures
- Provide discoverable alternatives
- Support standard gestures for standard actions
- Test with all input methods (touch, pencil, trackpad)
---
Common HIG Violations That Cause Rejection
| Violation | Fix |
|---|---|
| Tab bar used for actions | Use toolbar instead |
| Non-standard back navigation | Use system back button |
| Touch targets under 44pt | Increase tap area |
| No Dynamic Type support | Implement text scaling |
| Dark Mode not supported | Add dark appearance assets |
| Custom gestures override system | Use different gesture or location |
| Inaccessible UI | Add accessibility labels, VoiceOver support |
| Text clipped at large sizes | Use multiline or scrolling |
---
Specific Component Guidelines
In-App Purchase Design
| Requirement | Details |
|---|---|
| Experience first | Let people use app before purchase |
| Integrated shopping | Not jarring or separate from app |
| Simple names | Clear product names |
| Price prominence | Total billing price most prominent |
| Context | Only show store when payments can be made |
| Confirmation | Use default confirmation sheet |
Subscription Sign-Up Screen
Must include:
- Subscription name and duration
- Content/services provided during subscription
- Full renewal price (most prominent element)
- Localized pricing
- Sign in / restore purchases option
- Terms of Service link
- Privacy Policy link
---
HIG updated regularly. Always verify against current Apple documentation.
In-App Purchase Rules — Complete Reference
Official URLs:
- https://developer.apple.com/app-store/review/guidelines/#3.1
- https://developer.apple.com/in-app-purchase/
- https://developer.apple.com/design/human-interface-guidelines/in-app-purchase
This document covers when In-App Purchase is required, exceptions, implementation requirements, and commission structure.
---
When In-App Purchase is REQUIRED
Guideline 3.1.1: Apps may not use their own mechanisms to unlock content or functionality.
Digital Goods Requiring IAP
| Category | Examples |
|---|---|
| Premium content | Articles, tutorials, courses |
| Subscriptions | Digital content access, features |
| Game currencies | Gems, coins, gold |
| Game levels | Additional stages, worlds |
| Full versions | Upgrading from "lite" version |
| Features | Unlocking functionality |
| Ad removal | Removing advertisements |
| Social boosts | Profile visibility, post promotion |
| Virtual goods | Stickers, emojis, avatars |
| Tips/donations | In-app tipping for creators |
Key Principle
If the content is consumed within the app = IAP required
---
When IAP is NOT Required (Exceptions)
Guideline 3.1.3 defines specific exceptions where other payment methods are allowed:
Exception (a): Reader Apps
Applies to: Apps that allow users to access previously purchased content.
| Allowed | Details |
|---|---|
| Magazines | Previously subscribed publications |
| Newspapers | Previously purchased subscriptions |
| Books | Previously purchased e-books |
| Audio | Previously purchased audiobooks, music |
| Video | Previously purchased movies, shows |
Requirements:
- Cannot sell new content in-app
- Cannot include purchase links
- Can provide "create account" information
- Must not disadvantage IAP users
Exception (b): Multiplatform Services
Applies to: Content purchased on other platforms (web, Android, etc.)
| Allowed | Details |
|---|---|
| Web purchases | Content bought on website can be accessed in app |
| Cross-platform | Content from Android/Windows can be used |
| Existing libraries | User's existing content library |
Requirements:
- Cannot link to external purchase
- Must work for users who purchased via IAP too
- Cannot disadvantage IAP users
Exception (c): Enterprise Services
Applies to: B2B apps sold to organizations
| Allowed | Details |
|---|---|
| Enterprise subscriptions | Bulk licensing to companies |
| B2B services | Business tools sold to organizations |
| Team plans | Organization-wide access |
Requirements:
- Not for individual consumer purchase
- Must be organization deployment
Exception (d): Person-to-Person Services
Applies to: Real-time 1:1 services between people
| Allowed | Details |
|---|---|
| Tutoring | Live one-on-one tutoring sessions |
| Medical consultations | Real-time doctor visits |
| Legal consultations | Live attorney consultations |
| Personal training | Real-time fitness coaching |
| Real estate tours | Live property showings |
Requirements:
- Must be real-time, live services
- Must be one-on-one
- Scheduled/recorded content needs IAP
Exception (e): Physical Goods/Services
Applies to: Items consumed outside the app
| Allowed | Details |
|---|---|
| Physical products | Clothing, electronics, food |
| In-person services | Haircuts, cleaning, repair |
| Transportation | Ride sharing, delivery |
| Event tickets | Concerts, sports, theater |
| Travel | Hotels, flights, car rentals |
Requirements:
- Must be consumed outside the app
- Cannot be purely digital
Exception (f): Free Stand-alone Companions
Applies to: Free apps that complement paid web-based tools
| Allowed | Details |
|---|---|
| Web tool companions | Free app for paid web service |
| Feature subset | Limited functionality, full on web |
Requirements:
- Must be genuinely free
- Cannot offer purchases in-app
- Web tool must be the primary product
Exception (g): Advertising Management
Applies to: Apps for managing advertising campaigns
| Allowed | Details |
|---|---|
| Ad purchases | Buying ads for campaigns |
| Campaign management | Managing ad spend |
Requirements:
- For advertising purposes only
- Not for content consumption
---
Commission Structure
Standard Rates
| Scenario | Apple Commission | Developer Share |
|---|---|---|
| Standard rate | 30% | 70% |
| After 1 year subscriber | 15% | 85% |
| Small Business Program | 15% | 85% |
Small Business Program
Eligibility:
- Earned <$1M in App Store proceeds in prior calendar year
- Must apply each year
Benefits:
- 15% commission from day one (instead of 30%)
- Applies to all app revenue
Reset:
- If you exceed $1M, revert to standard 30%
- Can re-qualify next year if under $1M again
Subscriber Retention Discount
After subscriber paid for 1+ year:
- Commission drops from 30% to 15%
- 85% to developer
- Calculated per subscriber
Days count toward 1 year:
- Days of paid service accumulate
- Free trials don't count
- Introductory offers with paid portion count
---
In-App Purchase Types
Consumables
| Characteristic | Details |
|---|---|
| Definition | Depletes with use |
| Examples | Game currency, lives, boosts |
| Restoration | Cannot be restored |
| Multiple purchase | Can buy repeatedly |
Non-Consumables
| Characteristic | Details |
|---|---|
| Definition | Permanent, one-time purchase |
| Examples | Premium features, ad removal, full version |
| Restoration | Must support restore purchases |
| Multiple purchase | Cannot buy again once owned |
Auto-Renewable Subscriptions
| Characteristic | Details |
|---|---|
| Definition | Recurring until cancelled |
| Examples | Premium access, content subscriptions |
| Billing | Automatic renewal |
| Requirements | Must display cancellation, sign-up requirements |
Non-Renewing Subscriptions
| Characteristic | Details |
|---|---|
| Definition | Fixed duration, no auto-renewal |
| Examples | Season pass, limited time access |
| Renewal | User must manually repurchase |
| Restoration | App must track expiration |
---
StoreKit Implementation Requirements
Required Functionality
| Feature | Requirement |
|---|---|
| Restore purchases | Must provide way to restore non-consumables and subscriptions |
| Receipt validation | Verify purchases are legitimate |
| Error handling | Graceful handling of purchase failures |
| Transaction observation | Handle interrupted transactions on app launch |
Sign-Up Screen Requirements
For subscriptions, the sign-up screen must display:
| Element | Requirement |
|---|---|
| Subscription name | Clear product name |
| Duration | Monthly, yearly, etc. |
| Content/services | What's included |
| Renewal price | MOST PROMINENT ELEMENT |
| Localized pricing | All available currencies |
| Restore purchases | Option to sign in or restore |
| Terms of Service | Link required |
| Privacy Policy | Link required |
Free Trial Requirements
| Requirement | Details |
|---|---|
| Duration | Clearly state trial length |
| Price after trial | Show what user will be billed |
| Automatic billing | Cannot mislead about auto-charge |
| Cancellation | Explain how to cancel before charge |
---
Price Display Guidelines
Requirements
| Rule | Details |
|---|---|
| Full price | Show complete price, not per-day calculations |
| Prominence | Price must be most prominent element |
| Localization | Show user's local currency |
| Clarity | No hidden fees or conditions |
What NOT to Do
| Violation | Example |
|---|---|
| Per-day pricing | "Only $0.50/day!" for $14.99/month |
| Hidden pricing | Price in small text or hard to find |
| Misleading savings | Fake "was $X, now $Y" claims |
| Currency confusion | Showing USD to non-US users |
---
Cancellation Requirements
User Rights
| Requirement | Details |
|---|---|
| Easy to find | Cancellation option must be accessible |
| No barriers | Cannot require calling support |
| Clear process | User understands what happens when cancelled |
| Service continuation | Access until end of paid period |
Retention Best Practices
| Allowed | Not Allowed |
|---|---|
| Offer pause instead of cancel | Hide cancellation |
| Show what will be lost | Add excessive steps |
| Offer discount to stay | Require phone call |
| Survey about reasons | Guilt users into staying |
---
Family Sharing
Configuration
| Setting | Details |
|---|---|
| Enable | Can enable for auto-renewable subscriptions |
| Sharing limit | Up to 5 family members |
| Irreversible | Cannot disable once enabled |
| Naming | Highlight in subscription name (e.g., "Family Plan") |
Considerations
- Revenue per user may decrease
- User satisfaction may increase
- Cannot undo Family Sharing after enabling
- Consider offering individual and family tiers
---
Offer Types
Introductory Offers
| Type | Details |
|---|---|
| Who | New subscribers only |
| Limit | One per subscription group |
| Types | Free trial, pay-as-you-go, pay-up-front |
Promotional Offers
| Type | Details |
|---|---|
| Who | Existing or former subscribers |
| Limit | Up to 10 per subscription |
| Use | Win back churned users, reward loyalty |
Offer Codes
| Type | Details |
|---|---|
| Who | Anyone with a code |
| Types | One-time or custom codes |
| Use | Marketing, partnerships, promotions |
Win-back Offers
| Type | Details |
|---|---|
| Who | Previous subscribers |
| Configuration | In App Store Connect |
| Use | Automatically target lapsed users |
---
Common IAP Violations
| Violation | Guideline | Fix |
|---|---|---|
| External payment for digital goods | 3.1.1 | Switch to IAP |
| Linking to external purchase | 3.1.1 | Remove links |
| Price not prominent | HIG | Make price most visible |
| No restore purchases | 3.1.1 | Add restore functionality |
| Misleading subscription UI | 3.1.2 | Follow sign-up requirements |
| Hidden cancellation | 3.1.2 | Make cancellation easy |
| Wrong IAP type | 3.1.1 | Use appropriate type |
---
Implementation Checklist
Setup
- [ ] Products created in App Store Connect
- [ ] StoreKit configured in Xcode
- [ ] Sandbox testing completed
- [ ] Receipt validation implemented
UI Requirements
- [ ] Price prominently displayed
- [ ] Subscription terms clear
- [ ] Restore purchases available
- [ ] Terms of Service linked
- [ ] Privacy Policy linked
Subscription Specifics
- [ ] Sign-up screen requirements met
- [ ] Free trial clearly explained
- [ ] Cancellation easy to find
- [ ] Renewal terms displayed
Testing
- [ ] Purchase flow tested in sandbox
- [ ] Restore purchases tested
- [ ] Edge cases handled (failed purchase, interrupted transaction)
- [ ] Subscription states handled (active, expired, grace period)
---
IAP requirements evolve. Always verify against current Apple documentation.
Pre-Submission Checklist — Complete Reference
Use this checklist before every App Store submission to ensure first-submission approval.
---
Quick Pre-Flight Check
Critical Items (Must Pass)
| Check | Status | Notes |
|---|---|---|
| App tested on real device | ☐ | Not just simulator |
| No crashes during testing | ☐ | Test all flows |
| Demo account provided (if needed) | ☐ | Test credentials work |
| Backend services live | ☐ | All APIs accessible |
| Privacy manifest included | ☐ | PrivacyInfo.xcprivacy |
| Privacy labels accurate | ☐ | Match actual data collection |
| Privacy policy linked | ☐ | In app and App Store listing |
| Screenshots show app in use | ☐ | Not splash screens |
| Built with Xcode 16+ / iOS 18 SDK | ☐ | Current requirements |
---
Detailed Checklist by Category
1. Technical Requirements
Build Configuration
- [ ] Using Xcode 16 or later
- [ ] Built against iOS 18 SDK
- [ ] Release build configuration (not Debug)
- [ ] arm64 architecture only (no simulator slices)
- [ ] dSYM symbols uploaded for crash reporting
Info.plist
- [ ] All required keys present
- [ ] Permission description strings for all used permissions
- [ ] Bundle ID matches App Store Connect
- [ ] Version number updated
- [ ] Build number incremented
Code Quality
- [ ] No deprecated API warnings
- [ ] No private API usage
- [ ] Xcode validation passes
- [ ] No memory leaks (tested with Instruments)
Compatibility
- [ ] Tested on minimum supported iOS version
- [ ] Tested on current iOS version
- [ ] Tested on multiple device sizes
- [ ] Tested on iPad (if Universal app)
- [ ] Dark Mode supported (if applicable)
- [ ] Dynamic Type supported
---
2. Privacy Compliance
Privacy Manifest (PrivacyInfo.xcprivacy)
- [ ] File exists at bundle root
- [ ] NSPrivacyTracking set correctly (true/false)
- [ ] NSPrivacyTrackingDomains listed (if tracking)
- [ ] NSPrivacyCollectedDataTypes complete
- [ ] NSPrivacyAccessedAPITypes with reasons
Privacy Labels (App Store Connect)
- [ ] All data types identified
- [ ] Uses accurately described
- [ ] "Linked to User" marked correctly
- [ ] "Used to Track User" marked correctly
- [ ] Labels match actual code behavior
Privacy Policy
- [ ] Link in App Store listing
- [ ] Link accessible from within app
- [ ] Covers all data collection
- [ ] Explains user rights
- [ ] Contact information included
Third-Party SDKs
- [ ] All SDKs updated to latest versions
- [ ] All SDKs have privacy manifests
- [ ] All SDKs are signed
- [ ] SDK data collection included in privacy labels
ATT (if tracking)
- [ ] ATT prompt implemented
- [ ] Prompt shown before tracking
- [ ] User choice respected
- [ ] Fallback for denied permission
---
3. App Store Connect Metadata
App Identity
- [ ] App name under 30 characters
- [ ] App name unique and not trademarked
- [ ] Subtitle under 30 characters (if using)
- [ ] Keywords optimized (100 characters)
Screenshots
- [ ] 6.9" iPhone screenshots provided
- [ ] 6.5" iPhone screenshots provided
- [ ] 6.3"/6.1" iPhone screenshots provided
- [ ] iPad screenshots (if iPad supported)
- [ ] All screenshots show app in use
- [ ] No splash screens or login pages
- [ ] Correct resolutions and formats
- [ ] Localized for each market (if applicable)
App Preview Videos (if using)
- [ ] 15-30 seconds length
- [ ] Screen recordings only (no pre-rendered)
- [ ] Correct resolutions
- [ ] Accurate representation of app
Description
- [ ] Accurately describes app
- [ ] No competitor mentions
- [ ] No unverifiable claims
- [ ] Privacy Policy link included
- [ ] Terms of Service link included
What's New
- [ ] Describes actual changes
- [ ] Not just marketing copy
- [ ] Useful to users
Age Rating
- [ ] All questions answered honestly
- [ ] Rating reflects actual content
- [ ] UGC warning set (if applicable)
Category
- [ ] Primary category appropriate
- [ ] Secondary category (if applicable)
Support & Contact
- [ ] Support URL valid and accessible
- [ ] Support URL tested
- [ ] Contact information accurate
---
4. App Functionality
Demo Account (if login required)
- [ ] Demo credentials provided in review notes
- [ ] Demo account tested and working
- [ ] Demo has full access to all features
- [ ] Demo doesn't require 2FA (or code provided)
- [ ] Demo doesn't expire during review period
Core Functionality
- [ ] All features work as described
- [ ] No placeholder content
- [ ] No "coming soon" features
- [ ] No hidden functionality
User Flows
- [ ] Complete user journey tested
- [ ] Edge cases handled
- [ ] Error states graceful
- [ ] Loading states present
Network
- [ ] Works with slow connection
- [ ] Handles no connection gracefully
- [ ] Backend services live and stable
- [ ] API rate limits won't affect review
---
5. Design Compliance
Human Interface Guidelines
- [ ] iOS design patterns followed
- [ ] Touch targets ≥44pt
- [ ] Navigation patterns standard
- [ ] Tab bar used correctly (not for actions)
Accessibility
- [ ] VoiceOver compatible
- [ ] Dynamic Type supported
- [ ] Color contrast meets standards
- [ ] Reduce Motion respected
Dark Mode
- [ ] Dark Mode supported
- [ ] All screens look correct
- [ ] Images and icons adapt
---
6. Monetization (if applicable)
In-App Purchases
- [ ] IAP used for digital goods (if applicable)
- [ ] Products created in App Store Connect
- [ ] Sandbox testing complete
- [ ] Restore purchases implemented
- [ ] Receipt validation implemented
Subscriptions
- [ ] Sign-up screen meets requirements
- [ ] Price most prominent element
- [ ] Free trial clearly explained
- [ ] Cancellation info displayed
- [ ] Terms of Service linked
- [ ] Privacy Policy linked
- [ ] Restore purchases available
Pricing Display
- [ ] Full price shown (not per-day)
- [ ] Localized for user's currency
- [ ] No hidden fees
---
7. Content Compliance
User-Generated Content (if applicable)
- [ ] Content filtering implemented
- [ ] Report mechanism available
- [ ] Block user capability
- [ ] Contact information published
- [ ] Timely moderation
Kids Category (if applicable)
- [ ] No external links (unless parental gated)
- [ ] No purchases (unless parental gated)
- [ ] No third-party advertising
- [ ] No analytics collecting PII
- [ ] COPPA compliant
General Content
- [ ] No objectionable content
- [ ] No violence/hate speech
- [ ] Age-appropriate for rating
- [ ] No misleading claims
---
8. Review Notes
Information to Include
- [ ] Demo account credentials
- [ ] Special instructions for testing
- [ ] Explanation of non-obvious features
- [ ] Hardware requirements (if any)
- [ ] Testing conditions (if specific)
Example Review Notes
Demo Account:
Username: demo@yourapp.com
Password: AppReview2025!
Access: Full access to all premium features
Testing Notes:
• The "Scan Document" feature requires pointing the camera at a document
• Location features can be tested by granting location permission
• Push notifications require device token registration
Special Features:
• Dark Mode is fully supported
• App works offline with limited functionality
• Widget available on iOS 17+---
9. Final Steps
Before Clicking Submit
- [ ] All checklist items above completed
- [ ] Test app one final time on device
- [ ] Review all metadata for typos
- [ ] Verify screenshots are current
- [ ] Confirm demo account still works
- [ ] Check backend services are stable
App Store Connect
- [ ] All required fields completed
- [ ] Export compliance answered
- [ ] Content rights confirmed
- [ ] Advertising identifier (if applicable)
- [ ] App pricing set
Post-Submission
- [ ] Monitor App Store Connect for status
- [ ] Check email for any messages
- [ ] Be available to respond quickly
- [ ] Have fixes ready for common issues
---
Quick Reference: By Rejection Risk
High Risk (Most Common Rejections)
| Issue | Prevention |
|---|---|
| Privacy violations | Complete privacy manifest, accurate labels |
| Crashes | Test on real devices |
| Inaccurate metadata | Update screenshots, honest description |
| Broken demo account | Test before submission |
| Missing functionality | Ensure app provides real utility |
Medium Risk
| Issue | Prevention |
|---|---|
| UGC without moderation | Add filtering, reporting, blocking |
| Payment issues | Use IAP correctly |
| Performance problems | Profile with Instruments |
| Design violations | Follow HIG |
Lower Risk (But Still Possible)
| Issue | Prevention |
|---|---|
| Age rating incorrect | Answer honestly |
| Wrong category | Choose primary function |
| Support URL broken | Test before submission |
---
Emergency Contacts
Apple Resources
| Resource | URL |
|---|---|
| App Review Guidelines | https://developer.apple.com/app-store/review/guidelines/ |
| App Store Connect | https://appstoreconnect.apple.com |
| Developer Support | https://developer.apple.com/contact/ |
| Expedited Review Request | App Store Connect → Contact Us |
When You're Rejected
1. Read rejection message carefully 2. Identify specific guideline cited 3. Determine fix vs appeal 4. Make changes or draft appeal 5. Resubmit promptly
---
Use this checklist before every submission. Customize for your specific app.
Privacy Requirements — Complete Reference
Official URL: https://developer.apple.com/app-store/user-privacy-and-data-use/
Privacy violations are the #1 cause of App Store rejections. This document covers all privacy requirements comprehensively.
---
App Tracking Transparency (ATT)
Required since iOS 14.5
When ATT Permission is REQUIRED
You must request permission via ATT if your app:
| Scenario | Example |
|---|---|
| Targeted advertising | Displaying ads based on data from other companies' apps/websites |
| Data broker sharing | Sharing device location or email lists with data brokers |
| Ad network sharing | Sharing advertising identifiers with ad networks for retargeting |
| SDK data combining | Using SDKs that combine user data across apps |
| Fingerprinting | Using device signals to uniquely identify users |
When ATT is NOT Required
You don't need ATT permission if:
| Scenario | Details |
|---|---|
| On-device only | Data is linked only on-device and never sent off device |
| Fraud prevention | Data broker used solely for fraud detection/prevention |
| Credit reporting | Consumer reporting agency for credit purposes only |
| First-party analytics | Analytics without cross-site/cross-app linking |
ATT Implementation Requirements
// Request permission
import AppTrackingTransparency
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Tracking allowed
case .denied, .restricted, .notDetermined:
// Tracking not allowed
}
}Critical Rules:
- Cannot gate features on tracking consent
- Cannot incentivize users to allow tracking
- Can explain why you want permission (transparently)
- Cannot use fingerprinting as alternative
- Must respect user's choice in ATT prompt
- Must re-request only when status is
.notDetermined
---
Privacy Labels (App Privacy Details)
Required for all app submissions
Data Categories
| Category | Data Types |
|---|---|
| Contact Info | Name, email address, phone number, physical address |
| Health & Fitness | Health data, fitness data |
| Financial Info | Payment info, credit info, salary, assets |
| Location | Precise location, coarse location |
| Sensitive Info | Racial/ethnic data, sexual orientation, political opinions, religious beliefs |
| Contacts | Contacts (address book) |
| User Content | Emails/messages, photos/videos, audio, gameplay content, customer support |
| Browsing History | Web browsing history |
| Search History | Search history in app |
| Identifiers | User ID, device ID, IDFA |
| Purchases | Purchase history |
| Usage Data | Product interaction, advertising data |
| Diagnostics | Crash data, performance data |
Data Use Categories
For each data type, you must disclose:
| Use | Description |
|---|---|
| Third-Party Advertising | Displaying ads or sharing with ad networks |
| Developer's Advertising | Displaying ads from your own ad network |
| Analytics | Analyzing user behavior, app performance |
| Product Personalization | Customizing what user sees |
| App Functionality | Core app features |
| Other Purposes | Any other use |
Linking and Tracking
| Question | Meaning |
|---|---|
| Linked to User | Data is connected to user identity |
| Used to Track User | Data is used for cross-app/cross-site tracking |
Accuracy Requirements
Your privacy labels MUST match your actual data practices:
- Review all code paths for data collection
- Review all third-party SDKs
- Update labels with every app update
- Inaccurate labels = rejection
---
Privacy Manifests
Required since May 2024
File: PrivacyInfo.xcprivacy
Every app must include a privacy manifest file at the bundle root.
Structure
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array>
<string>tracking.example.com</string>
</array>
<key>NSPrivacyCollectedDataTypes</key>
<array>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeEmailAddress</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<true/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
</array>
</dict>
</array>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>Required Reason APIs
These APIs require justification in your privacy manifest:
| API Category | Examples | Common Reasons |
|---|---|---|
| File timestamp APIs | getattrlist(), stat() | Determine file modification dates |
| System boot time APIs | sysctl() with KERN_BOOTTIME | Calculate elapsed time |
| Disk space APIs | statfs(), statvfs() | Check available storage |
| User defaults APIs | UserDefaults | Store app preferences |
| Active keyboard APIs | UITextInputMode | Determine input language |
Third-Party SDK Requirements
All third-party SDKs must: 1. Include their own privacy manifests 2. Be signed with valid signatures 3. Declare their data collection and API usage
Apple maintains a list of SDKs requiring privacy manifests: https://developer.apple.com/support/third-party-SDK-requirements/
---
Privacy Policy Requirements
Required for ALL apps (Guideline 5.1.1)
Must Include
| Element | Requirement |
|---|---|
| Data identification | Clearly identify what data is collected |
| Collection method | Describe how data is collected |
| All uses | Explain all uses of the data |
| Third-party sharing | Confirm third parties provide equal protection |
| Retention | Explain data retention/deletion policies |
| User rights | Describe how to revoke consent and delete data |
| Contact info | Provide way to contact about privacy concerns |
Best Practices
- Write in plain language (not legalese)
- Keep updated with app changes
- Make easily accessible from app and App Store listing
- Include effective date
- Describe security measures
- Cover all platforms (iOS, web, etc.)
Common Privacy Policy Failures
| Issue | Solution |
|---|---|
| Too vague | Specify exact data types |
| Missing sections | Cover all required elements |
| Outdated | Update with every release |
| Hard to find | Link prominently in app and settings |
| Legal jargon | Simplify language |
---
Data Collection Categories (Complete List)
NSPrivacyCollectedDataType Values
NSPrivacyCollectedDataTypeName
NSPrivacyCollectedDataTypeEmailAddress
NSPrivacyCollectedDataTypePhoneNumber
NSPrivacyCollectedDataTypePhysicalAddress
NSPrivacyCollectedDataTypeOtherUserContactInfo
NSPrivacyCollectedDataTypeHealth
NSPrivacyCollectedDataTypeFitness
NSPrivacyCollectedDataTypePaymentInfo
NSPrivacyCollectedDataTypeCreditInfo
NSPrivacyCollectedDataTypeOtherFinancialInfo
NSPrivacyCollectedDataTypePreciseLocation
NSPrivacyCollectedDataTypeCoarseLocation
NSPrivacyCollectedDataTypeSensitiveInfo
NSPrivacyCollectedDataTypeContacts
NSPrivacyCollectedDataTypeEmails
NSPrivacyCollectedDataTypeTextMessages
NSPrivacyCollectedDataTypePhotos
NSPrivacyCollectedDataTypeVideos
NSPrivacyCollectedDataTypeAudioData
NSPrivacyCollectedDataTypeGameplayContent
NSPrivacyCollectedDataTypeCustomerSupport
NSPrivacyCollectedDataTypeOtherUserContent
NSPrivacyCollectedDataTypeBrowsingHistory
NSPrivacyCollectedDataTypeSearchHistory
NSPrivacyCollectedDataTypeUserID
NSPrivacyCollectedDataTypeDeviceID
NSPrivacyCollectedDataTypePurchaseHistory
NSPrivacyCollectedDataTypeProductInteraction
NSPrivacyCollectedDataTypeAdvertisingData
NSPrivacyCollectedDataTypeOtherUsageData
NSPrivacyCollectedDataTypeCrashData
NSPrivacyCollectedDataTypePerformanceData
NSPrivacyCollectedDataTypeOtherDiagnosticData
NSPrivacyCollectedDataTypeEnvironmentScanning
NSPrivacyCollectedDataTypeHands
NSPrivacyCollectedDataTypeHeadPurpose Values
NSPrivacyCollectedDataTypePurposeThirdPartyAdvertising
NSPrivacyCollectedDataTypePurposeDeveloperAdvertising
NSPrivacyCollectedDataTypePurposeAnalytics
NSPrivacyCollectedDataTypePurposeProductPersonalization
NSPrivacyCollectedDataTypePurposeAppFunctionality
NSPrivacyCollectedDataTypePurposeOther---
Permission Requests
System Permissions
| Permission | Key | When to Request |
|---|---|---|
| Camera | NSCameraUsageDescription | When user taps camera feature |
| Microphone | NSMicrophoneUsageDescription | When user needs audio input |
| Location | NSLocationWhenInUseUsageDescription | When app needs location |
| Location (Always) | NSLocationAlwaysUsageDescription | Only if truly needed |
| Photos | NSPhotoLibraryUsageDescription | When user accesses photos |
| Contacts | NSContactsUsageDescription | When user shares contacts |
| Calendars | NSCalendarsUsageDescription | When user accesses calendar |
| Reminders | NSRemindersUsageDescription | When user accesses reminders |
| Health | NSHealthShareUsageDescription | When reading health data |
| Bluetooth | NSBluetoothAlwaysUsageDescription | When using Bluetooth |
| Motion | NSMotionUsageDescription | When using accelerometer/gyroscope |
Request Best Practices
- Request in context (when user performs related action)
- Explain why permission is needed (before system prompt)
- Provide alternative if permission denied
- Don't request all permissions at launch
- Re-request gracefully if previously denied
---
Data Security Requirements (Guideline 1.6)
Required Measures
| Requirement | Implementation |
|---|---|
| Secure transmission | HTTPS for all network calls |
| Secure storage | Keychain for sensitive data |
| Encryption | Encrypt sensitive local data |
| Access control | Prevent unauthorized access |
| Session management | Secure token handling |
Common Security Issues
| Issue | Fix |
|---|---|
| HTTP connections | Switch to HTTPS |
| Hardcoded secrets | Use environment variables or Keychain |
| Unencrypted storage | Use encrypted Core Data or Keychain |
| Logging sensitive data | Remove sensitive data from logs |
---
Privacy Checklist Before Submission
Privacy Manifest
- [ ] PrivacyInfo.xcprivacy file exists at bundle root
- [ ] All collected data types declared
- [ ] All required reason APIs justified
- [ ] Tracking domains listed (if tracking)
- [ ] Third-party SDK manifests included
Privacy Labels
- [ ] All data types identified in App Store Connect
- [ ] Uses accurately described
- [ ] Linked to user correctly marked
- [ ] Used to track correctly marked
- [ ] Labels match actual app behavior
ATT
- [ ] ATT prompt implemented (if tracking)
- [ ] User choice respected
- [ ] No tracking before consent
- [ ] Fallback if user declines
Privacy Policy
- [ ] Link in App Store listing
- [ ] Link in app (Settings or About)
- [ ] Covers all data collection
- [ ] Explains user rights
- [ ] Contact information included
Permissions
- [ ] All permission strings in Info.plist
- [ ] Strings explain why permission needed
- [ ] Permissions requested in context
- [ ] Graceful handling if denied
---
Privacy requirements evolve. Always verify against current Apple documentation.
Screenshot & Metadata Specifications — Complete Reference
Official URL: https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications/
This document covers all App Store Connect metadata requirements including screenshots, descriptions, and listing optimization.
---
Screenshot Specifications
General Requirements
| Requirement | Details |
|---|---|
| Count | 1-10 screenshots per device size |
| Formats | .jpeg, .jpg, .png |
| Content | Must show app in use |
| NOT allowed | Splash screens, login pages, title art only |
| Orientation | Must match device orientation |
iPhone Screenshot Sizes
6.9" Display (Required)
Devices: iPhone 17 Pro Max, 16 Pro Max, 16 Plus, 15 Pro Max, 15 Plus, 14 Pro Max
| Orientation | Size Options |
|---|---|
| Portrait | 1320 × 2868 px OR 1290 × 2796 px OR 1260 × 2736 px |
| Landscape | 2868 × 1320 px OR 2796 × 1290 px OR 2736 × 1260 px |
6.5" Display (Required)
Devices: iPhone 14 Plus, 13 Pro Max, 12 Pro Max, 11 Pro Max, 11, XS Max, XR
| Orientation | Size Options |
|---|---|
| Portrait | 1284 × 2778 px OR 1242 × 2688 px |
| Landscape | 2778 × 1284 px OR 2688 × 1242 px |
6.3"/6.1" Display (Required)
Devices: iPhone 17/16/15/14 Pro, 16/15/14
| Orientation | Size Options |
|---|---|
| Portrait | 1206 × 2622 px OR 1179 × 2556 px |
| Landscape | 2622 × 1206 px OR 2556 × 1179 px |
5.5" Display (Optional for new apps)
Devices: iPhone 8 Plus, 7 Plus, 6s Plus
| Orientation | Size |
|---|---|
| Portrait | 1242 × 2208 px |
| Landscape | 2208 × 1242 px |
iPad Screenshot Sizes
13" Display (Required if iPad supported)
Devices: iPad Pro 13"
| Orientation | Size Options |
|---|---|
| Portrait | 2064 × 2752 px OR 2048 × 2732 px |
| Landscape | 2752 × 2064 px OR 2732 × 2048 px |
11" Display (Required if iPad supported)
Devices: iPad Pro 11", iPad Air
| Orientation | Size Options |
|---|---|
| Portrait | 1668 × 2388 px OR 1640 × 2360 px |
| Landscape | 2388 × 1668 px OR 2360 × 1640 px |
Apple Watch Screenshot Sizes
| Watch Size | Size |
|---|---|
| Ultra 2 (49mm) | 410 × 502 px |
| Series 10 (46mm) | 416 × 496 px |
| Series 10 (42mm) | 374 × 446 px |
| Series 9 (45mm) | 396 × 484 px |
| Series 9 (41mm) | 352 × 430 px |
---
Screenshot Best Practices
Content Guidelines
| Do | Don't |
|---|---|
| Show app actually in use | Show only splash screen |
| Highlight key features | Show login/signup screens |
| Use real or realistic content | Use lorem ipsum placeholder text |
| Show value proposition | Use misleading mockups |
| Match actual app appearance | Photoshop features that don't exist |
Composition Tips
| Tip | Details |
|---|---|
| First screenshot | Most important—shows in search results |
| Feature highlights | Each screenshot showcases different feature |
| Text overlays | Brief, benefit-focused callouts |
| Localization | Translate overlays for each market |
| Consistency | Matching style across all screenshots |
Common Screenshot Mistakes
| Mistake | Impact |
|---|---|
| Splash screen only | Rejection (Guideline 2.3.3) |
| Login page prominently | Users don't see value |
| Too much text | Hard to read in thumbnails |
| Outdated UI | Misleading users |
| Wrong device frame | Confusing presentation |
---
App Preview Videos
Specifications
| Requirement | Details |
|---|---|
| Length | 15-30 seconds |
| Content | Screen recordings of app |
| Format | .mov, .m4v, .mp4 |
| Resolution | Match screenshot sizes |
| Audio | Optional, muted by default |
Requirements
| Rule | Details |
|---|---|
| App footage only | Must be actual screen capture (Guideline 2.3.4) |
| No pre-rendered | No CGI or concept videos |
| Accurate | Must represent actual app |
| Appropriate | Suitable for all audiences |
Video Best Practices
| Tip | Details |
|---|---|
| First 3 seconds | Critical—auto-plays in search |
| Show key workflow | Complete user journey |
| No audio dependence | Works without sound |
| Clear demonstration | Show, don't tell |
---
App Name
Requirements (Guideline 2.3.7)
| Rule | Details |
|---|---|
| Length | Maximum 30 characters |
| Uniqueness | Must be distinct |
| No keyword stuffing | No "Best Photo Editor Camera Filter" |
| No trademarked terms | Without explicit permission |
| No price info | "App Name - Free" not allowed |
| No platform references | "Also on Android" not allowed |
Examples
| Bad | Good |
|---|---|
| "Photo Editor Camera Filter Gallery App Pro" | "PhotoCraft" |
| "Best Workout Fitness Exercise Tracker" | "FitTrack" |
| "Note App - Free Edition" | "QuickNotes" |
---
App Subtitle
Requirements
| Rule | Details |
|---|---|
| Length | Maximum 30 characters |
| Purpose | Additional context for app |
| No inappropriate content | Suitable for 4+ rating |
| No competitor mentions | "Better than [App]" not allowed |
| No unverifiable claims | "#1 App" without proof not allowed |
Best Practices
| Tip | Example |
|---|---|
| Clarify purpose | "Photo & Video Editor" |
| Highlight benefit | "Track Habits Daily" |
| Differentiate | "For Professional Photographers" |
---
App Description
Requirements
| Rule | Details |
|---|---|
| Accuracy | Accurately describe features |
| No competitor references | Don't mention other apps |
| No unverifiable claims | Avoid "best", "#1" without proof |
| Include links | Terms of Use, Privacy Policy |
| Keep updated | Reflect current app version |
Best Practices
| Section | Content |
|---|---|
| First paragraph | Hook—what the app does and why |
| Features list | Key features with brief explanations |
| Social proof | Awards, press mentions (if any) |
| Links | ToS, Privacy Policy, Support |
Structure Example
[App Name] helps you [core benefit] by [how it works].
FEATURES
• Feature 1 — Brief benefit
• Feature 2 — Brief benefit
• Feature 3 — Brief benefit
• Feature 4 — Brief benefit
[Optional: Awards, press mentions]
SUBSCRIPTION INFO
• [Subscription details]
• [Pricing]
• [Cancellation info]
Privacy Policy: [URL]
Terms of Use: [URL]
Support: [URL]---
Keywords
Requirements
| Rule | Details |
|---|---|
| Character limit | 100 characters total |
| Separator | Comma-separated, no spaces after commas |
| Accuracy | Must accurately describe app |
| No competitor names | Don't use other app names |
| No trademarked terms | Without permission |
| No offensive content | Appropriate for all audiences |
Optimization Tips
| Tip | Details |
|---|---|
| Use all 100 chars | Maximize discoverability |
| No spaces after commas | "word1,word2,word3" |
| No duplicates | Don't repeat app name |
| Research | Use App Store search to find terms |
| Localize | Different keywords per locale |
Keywords to Avoid
| Type | Example |
|---|---|
| Competitor names | "Instagram,TikTok" |
| Generic words | "app,free,best" (low value) |
| Irrelevant terms | Keywords unrelated to app |
| Trademarked terms | Without permission |
---
What's New
Requirements (Guideline 2.3.12)
| Rule | Details |
|---|---|
| Describe changes | Must describe significant changes |
| No marketing | Not for promotional messages |
| Accurate | Must reflect actual changes |
| Useful | Help users understand what changed |
Good Examples
Version 2.1
• New dark mode support
• Fixed crash when sharing photos
• Performance improvements for large libraries
• Added support for iPhone 16Bad Examples
Version 2.1
• We love our users! Thanks for your support!
• Rate us 5 stars!
• Buy our premium subscription!---
Age Rating
Requirements (Guideline 2.3.6)
Answer honestly:
| Category | Examples |
|---|---|
| Cartoon Violence | Tom & Jerry style, cartoon fighting |
| Realistic Violence | Blood, weapons, combat |
| Sexual Content | Suggestive themes, nudity |
| Profanity | Strong or mild language |
| Drug/Alcohol | Use, references, sales |
| Horror | Scary themes, jump scares |
| Gambling | Simulated or real |
| User Content | UGC that could include above |
Consequences of Wrong Rating
| Issue | Result |
|---|---|
| Underrating | Rejection, app removal |
| Overrating | Reduced audience reach |
---
Promotional Text
Purpose
- Appears above description on App Store
- Can be updated anytime without app update
- Great for timely promotions, events
Requirements
| Rule | Details |
|---|---|
| Length | 170 characters |
| Content | Promotional messages, announcements |
| Updates | Can change without new app version |
Use Cases
| Use | Example |
|---|---|
| Seasonal promo | "🎄 Holiday Sale: 50% off Premium!" |
| New feature | "✨ NEW: Dark Mode is here!" |
| Event | "Live now: Special event content" |
---
Support URL
Requirements
| Rule | Details |
|---|---|
| Required | Must provide valid support URL |
| Accessible | Must be reachable |
| Contact method | Easy way to contact developer |
| Language | Should match app's primary language |
Best Practices
| Element | Details |
|---|---|
| FAQ section | Common questions answered |
| Contact form | Easy to submit issues |
| Response time | State expected response time |
| Email option | Alternative contact method |
---
Localization
Requirements
| Rule | Details |
|---|---|
| Accuracy | Translations must be accurate |
| Completeness | All metadata for each locale |
| Cultural | Appropriate for each market |
| Screenshots | Localized UI in screenshots |
Priority Markets
| Market | Language |
|---|---|
| United States | English (US) |
| China | Simplified Chinese |
| Japan | Japanese |
| South Korea | Korean |
| Germany | German |
| France | French |
| UK | English (UK) |
| Brazil | Portuguese (Brazil) |
---
Metadata Checklist
Before Submission
App Identity
- [ ] App name under 30 characters
- [ ] Subtitle under 30 characters
- [ ] Keywords optimized (100 chars)
- [ ] App icon meets all specs
Screenshots
- [ ] 6.9" iPhone screenshots (required)
- [ ] 6.5" iPhone screenshots (required)
- [ ] 6.3"/6.1" iPhone screenshots (required)
- [ ] iPad screenshots (if iPad supported)
- [ ] All show app in use (not splash screens)
- [ ] Preview videos (if using)
Text Content
- [ ] Description accurate and complete
- [ ] What's New describes actual changes
- [ ] Privacy Policy link included
- [ ] Terms of Service link included
- [ ] Support URL valid and accessible
Ratings & Categories
- [ ] Age rating answered honestly
- [ ] Primary category appropriate
- [ ] Secondary category (if applicable)
Localization
- [ ] All locales have complete metadata
- [ ] Screenshots localized
- [ ] Keywords localized
---
Specifications updated for 2025. Always verify against current Apple documentation.