app-store-review
Comprehensive App Store review preparation guide covering rejections, privacy manifests, IAP rules, and compliance checklists.
- Covers top rejection reasons (incomplete apps, inaccurate metadata, private API usage) with prevention strategies and real examples of approved vs. rejected content
- Detailed privacy manifest requirements with reason codes, ATT implementation patterns, and cross-reference checks between nutrition labels and actual data collection
- In-App Purchase and StoreKit rules distinguishing what requires IAP, subscription display requirements, and transaction verification best practices
- Submission workflow from archiving through phased rollout, appeal process strategies, and metadata optimization for app names, screenshots, keywords, and preview videos
- Pre-submission checklist, common mistakes (missing demo credentials, vague usage descriptions, unnecessary ATT prompts), and HIG compliance reference
App Store Review Preparation
Guidance for catching App Store rejection risks before submission. Apple reviewed 7.7 million submissions in 2024 and rejected 1.9 million. Most rejections are preventable with proper preparation.
Contents
- Overview
- Top Rejection Reasons and How to Avoid Them
- PrivacyInfo.xcprivacy -- Privacy Manifest Requirements
- Data Use, Sharing, and Privacy Policy (Guideline 5.1.2)
- In-App Purchase and StoreKit Rules (Guideline 3.1.1)
- HIG Compliance Checklist
- App Tracking Transparency (ATT)
- EU Digital Markets Act (DMA) Considerations
- Entitlements and Capabilities
- Submission Workflow
- Metadata Best Practices
- Appeal Process
- Common Mistakes
More from dpearson2699/swift-ios-skills
swiftui-animation
Implement, review, or improve SwiftUI animations and transitions. Use when adding explicit animations with withAnimation, configuring implicit animations with .animation(_:body:) or .animation(_:value:), configuring spring animations (.smooth, .snappy, .bouncy), building phase or keyframe animations with PhaseAnimator/KeyframeAnimator, creating hero transitions with matchedGeometryEffect or matchedTransitionSource, adding SF Symbol effects (bounce, pulse, variableColor, breathe, rotate, wiggle), implementing custom Transition or CustomAnimation types, or ensuring animations respect accessibilityReduceMotion.
1.7Kios-accessibility
Implements, reviews, or improves accessibility in iOS/macOS apps with SwiftUI and UIKit. Use when adding VoiceOver, Voice Control, Switch Control, or Full Keyboard Access support; when working with accessibility labels, hints, values, traits, or accessibilityInputLabels; when grouping or reordering accessibility elements; when managing focus with @AccessibilityFocusState or .focusable(); when supporting Dynamic Type with @ScaledMetric; when building custom rotors or accessibility actions; when writing automated accessibility tests with XCTest; when auditing a11y compliance; or when adapting UI for assistive technologies and system accessibility preferences.
1.7Kswiftui-patterns
Builds SwiftUI views with modern MV architecture, state management, and view composition patterns. Covers @Observable ownership rules, @State/@Bindable/@Environment wiring, view decomposition, custom ViewModifiers, environment values, async data loading with .task, iOS 26+ APIs, Writing Tools, and performance guidelines. Use when structuring a SwiftUI app, managing state with @Observable, composing view hierarchies, or applying SwiftUI best practices.
1.6Kswiftui-performance
Audit and improve SwiftUI runtime performance. Use when diagnosing slow rendering, janky scrolling, high CPU, memory usage, excessive view updates, layout thrash, body evaluation cost, identity churn, view lifetime issues, lazy loading, Instruments profiling guidance, and performance audit requests.
1.6Kios-networking
Build, review, or improve networking code in iOS/macOS apps using URLSession with async/await, structured concurrency, and modern Swift patterns. Use when working with REST APIs, downloading files, uploading data, WebSocket connections, pagination, retry logic, request middleware, caching, background transfers, or network reachability monitoring. Also use when handling HTTP requests, API clients, network error handling, or data fetching in Swift apps.
1.5Kios-localization
Implement, review, or improve localization and internationalization in iOS/macOS apps — String Catalogs (.xcstrings), generated localizable symbols, stable key naming, LocalizedStringKey, LocalizedStringResource, pluralization, FormatStyle for numbers/dates/measurements, right-to-left layout, Dynamic Type, and locale-aware formatting. Use when adding multi-language support, setting up String Catalogs, enabling generated symbols for compile-time-safe localization keys, handling plural forms, formatting dates/numbers/currencies for different locales, testing localizations, or making UI work correctly in RTL languages like Arabic and Hebrew.
1.5K