🍎
πŸ›  Want AI to audit your app automatically? Install the skill and point it at your project folder β€” works with Claude Code, Cursor, Copilot + more.
npx skills add https://github.com/itsncki-design/app-store-submission-auditor ⎘
Run in terminal Β· works with Claude Code, Cursor, Copilot + more βœ“ Copied to clipboard

App Store Rejection Guide

Grouped by app type. Every reason, what goes wrong, and how to fix it before you submit.

🏷 Categories Marketplace Subscription Any app Privacy
πŸ“‹ Total reasons 20 rejection reasons
On this page
πŸ’¬

Social apps

3

Apps with UGC, chat between strangers, user profiles, or location sharing


πŸ›οΈ

Marketplace apps

3

Swap, buy/sell, peer-to-peer transactions, listings with location

πŸ—‘οΈ
Account deletion via email is not compliant Guideline 5.1.1(v)

A "Delete Account" button that opens Mail with a pre-filled message does not pass. Since June 2022, deletion must be initiated programmatically from within the app. "We'll process it in 30 days" flows don't meet the requirement either. Apple reviewers will test this by actually deleting demo accounts.

β–Ά How to fix
  • Build an in-app delete account flow that triggers server-side deletion directly
  • Add a confirmation step before deletion executes
  • Account must be deleted (or deletion server-side initiated) immediately β€” no manual queues
  • Include working demo credentials in Review Notes so Apple can test this flow
πŸ”—
Broken or missing support URL App Store Connect β€” Metadata

Your support URL in App Store Connect must be a real, working link. Reviewers visit it and check that your privacy policy and legal documents are actually accessible there β€” not just that the URL field is filled in.

β–Ά How to fix
  • Verify your support URL resolves correctly before every submission
  • Ensure your privacy policy and terms are live and loading at the linked URL
  • Test from a fresh browser session β€” not your dev environment
πŸ“
Misleading screenshots or description Guideline 2.3 β€” Accurate Metadata

Screenshots showing features that aren't in the current build, or descriptions that don't accurately reflect what the app does, will get flagged. Reviewers compare what they see in the app against what's presented in the store listing.

β–Ά How to fix
  • Update screenshots every release to reflect the current version of the app
  • Only describe features that exist and work in the submitted build
  • Don't include screenshots from unreleased features or earlier designs

πŸ’³

Subscription & IAP apps

3

Auto-renewing subscriptions or any in-app purchases

πŸ“„
Missing Apple's EULA β€” your ToS doesn't count Guideline 3.1.2(c)

If you have subscriptions, Apple's standard EULA must be linked in both the App Store description and inside the app. Your own privacy policy or custom terms are not a substitute. Apple will reject you with the same vague message twice without ever clarifying what they actually want.

β–Ά How to fix
  • Link Apple's standard EULA in your App Store description text: apple.com/legal/internet-services/itunes/dev/stdeula/
  • Also link it inside the app β€” typically in a Settings or About screen
  • This is in addition to your own privacy policy, not instead of it
πŸ—‚οΈ
Subscription groups set up incorrectly App Store Connect β€” In-App Purchases

Creating separate subscription groups for each tier (e.g. separate groups for monthly and yearly) causes IAP review failures. All tiers for the same product must live inside a single subscription group.

β–Ά How to fix
  • Create one subscription group (e.g. "Premium") and put all tiers β€” monthly, yearly β€” inside it
  • If already misconfigured, deleting and rebuilding from scratch is often easier than restructuring
  • Confirm the correct group is attached to your submission before resubmitting
πŸ‘οΈ
Unclear subscription renewal terms Guideline 3.1.1

Apple reviewers will go through your purchase flow. Pricing, renewal dates, or cancellation steps that aren't clearly visible before the purchase screen will get flagged β€” especially trial periods that don't clearly state what happens when the trial ends.

β–Ά How to fix
  • Show price, billing frequency, and auto-renewal disclosure before the purchase screen
  • Make cancellation instructions findable β€” don't bury them in settings
  • Clearly state when and how much users will be charged after any trial period ends

πŸ”’

Privacy-first issues

2

Applies broadly but frequently missed β€” especially for apps collecting any user data

πŸ›‘οΈ
Missing or incomplete privacy policy Guideline 5.1.1 β€” Privacy

Privacy violations are the single biggest cause of App Store rejections. Apple requires a clearly accessible, human-readable privacy policy that covers what data is collected, how it's used, who it's shared with, and how users can request deletion. Vague or developer-facing language doesn't pass.

β–Ά How to fix
  • Write a clear, plain-language privacy policy β€” not just legalese copy-paste
  • Cover: what data is collected, why, who sees it, and how to delete it
  • Make the privacy policy accessible from both App Store listing and inside the app
  • Only collect data your app actually needs β€” not "just in case" permissions
πŸ”Œ
Third-party SDKs collecting data without disclosure Guideline 5.1.1 β€” Third-Party Data

Analytics, advertising, and crash reporting SDKs often collect and share data. Apple holds you responsible for all data practices in your app β€” including what third-party libraries do. If your SDK collects data you haven't disclosed, it's your rejection.

β–Ά How to fix
  • Audit every SDK in your app for what data it collects and where it sends it
  • Disclose third-party data sharing in your privacy policy
  • Complete the App Privacy nutrition label in App Store Connect accurately β€” Apple cross-checks this
  • Remove or replace SDKs that collect data beyond what you've disclosed

πŸ“±

Any app

7

Technical and quality requirements that apply to every single submission

πŸ“²
App crashes on iPad Guideline 2.1 β€” Performance

Even if you're only targeting iPhone, your app must be functional on iPad. Crashes on iPad are treated as performance failures regardless of your intended audience. Apple's reviewers test on both.

β–Ά How to fix
  • Test on a physical iPad before every submission β€” simulator is not enough
  • Fix any layout breaks or crashes at larger screen sizes
  • App doesn't need to be iPad-optimized, but it must not crash
🌐
Hardcoded IPv4 addresses in the build Guideline 2.5.5 β€” IPv6

Apple's review environment is IPv6-only with NAT64/DNS64. Connecting by domain name is fine β€” it's translated automatically. The failure mode is hardcoded IP literals like http://1.2.3.4/api or staging IPs accidentally left in the production build.

β–Ά How to fix
  • Search your codebase for hardcoded IPv4 addresses before every submission
  • Replace any IP literals with domain names
  • Check for staging or internal IPs accidentally left in production builds
πŸ”‘
No demo account credentials provided Review Notes β€” App Store Connect

If your app requires login, reviewers need working credentials in the Review Notes field. Without access to core functionality, reviewers will reject rather than reach out and ask for access.

β–Ά How to fix
  • Always include a test email and password in Review Notes for login-required apps
  • If multiple user roles exist, provide the one with access to the most important features
  • Confirm the demo account is active and credentials are correct at the time of submission
πŸ§ͺ
Placeholder content or beta labels in the build Guideline 2.3 β€” Accurate Metadata

The App Store is production only. Placeholder text, empty screens, "coming soon" messages, or anything labelled "beta" or "demo" results in immediate rejection. A clean TestFlight run doesn't mean a clean App Store submission β€” Apple applies different standards at each stage.

β–Ά How to fix
  • Remove all placeholder text, dummy content, and "coming soon" screens
  • Test every button, screen, and user flow before submitting
  • Use TestFlight for beta testing β€” the App Store is for finished, production-ready builds only
πŸ“‹
App has no real value or unique utility Guideline 4.2 β€” Minimum Functionality

Apple rejects apps that offer little or no value compared to what already exists, or that are essentially just web wrappers, basic utilities, or thin apps without a clear reason to exist. The bar has gotten higher as the App Store has matured.

β–Ά How to fix
  • Research what already exists in the App Store before submitting a new app
  • Identify your unique value β€” what does your app do that others don't?
  • If your app is a web wrapper, add meaningful native functionality that justifies the app format
πŸ”
Missing encryption declaration Export Compliance β€” Info.plist

Every app must declare whether it uses encryption beyond standard HTTPS. If ITSAppUsesNonExemptEncryption is missing from your Info.plist, Apple will ask during submission and block your upload until it's answered. Most apps just use HTTPS and can set it to NO β€” but the key must be there.

β–Ά How to fix
  • Add ITSAppUsesNonExemptEncryption to your Info.plist
  • If your app only uses standard HTTPS β€” set it to NO
  • If you use custom encryption β€” set to YES and upload export compliance docs in App Store Connect
  • Flutter: add to ios/Runner/Info.plist
πŸ“Έ
Screenshots don't match the current app Guideline 2.3 β€” Accurate Metadata

Screenshots showing features that aren't in the current build, or designs from an older version, will get flagged. Reviewers compare what they see in the app against what's shown in the store listing. Marketing renders or Figma mockups placed on device frames also don't pass.

β–Ά How to fix
  • Take screenshots from the actual running app β€” not Figma, not design mockups
  • Update screenshots every release to reflect the current version
  • Only show features that exist and work in the submitted build
  • Text overlays are fine as long as they don't misrepresent the actual UI

πŸ†•

New in 2025–2026

3

Requirements that changed recently β€” catching people who haven't submitted in a while

πŸ“Š
Updated age rating tiers (January 2026) Guideline 2.3.6 β€” Age Rating

Apple expanded age ratings from 4 tiers (4+/9+/12+/17+) to 5 tiers (4+/9+/13+/16+/18+) in January 2026, with new capability declarations required for messaging, UGC, advertising, and parental controls. If you haven't completed the updated questionnaire, your app updates will be blocked. Apps previously rated 12+ may now need 13+ or 16+.

β–Ά How to fix
  • Go to App Store Connect β†’ your app β†’ Age Rating and complete the updated questionnaire
  • If your app has chat, UGC, or advertising features β€” re-answer honestly, you may now be 13+ or 16+
  • Getting the rating wrong is grounds for removal after the fact, not just at submission
πŸ€–
External AI service β€” consent required Guideline 5.1.1 β€” Privacy (2025)

If your app sends personal user data to an external AI service (like OpenAI, Anthropic, Google Gemini, etc.), Apple now expects a clear consent moment before that data is transmitted. Silently passing user content to an AI backend without explicit consent is a privacy flag.

β–Ά How to fix
  • Add a consent modal or clear disclosure before any personal data is sent to an external AI
  • Disclose the AI service used in your privacy policy
  • Give users the option to opt out or understand what's being shared
πŸ—οΈ
SDK minimum version β€” Xcode 26 required from April 2026 Guideline 2.5.1 β€” Software Requirements

Apple requires apps to be built with the current Xcode GM release. From April 28, 2026, all new submissions and updates must be built with Xcode 26 and the iOS 26 SDK. Apps built with older Xcode versions will be rejected at that point β€” even if the app itself hasn't changed.

β–Ά How to fix
  • Keep Xcode updated β€” check the Mac App Store or developer.apple.com for the latest version
  • Before April 28, 2026: submit with Xcode 16 / iOS 18 SDK
  • After April 28, 2026: must use Xcode 26 / iOS 26 SDK for all new submissions and updates
  • Flutter: update your Flutter SDK and run flutter upgrade to ensure compatibility

βœ… Pre-submission checklist

Check off each item before you hit Submit for Review

πŸ’¬ Social apps
Block user feature implemented (not just report)
Location permission strings are specific and name the exact features
requestPermission() called before getLocation()
Location only requested when actually needed β€” not on startup
Age rating set to 12+ for apps with UGC, chat, or location
Age validation enforced inside the app at account creation
πŸ›οΈ Marketplace apps
In-app account deletion flow works programmatically
No email-based deletion flows
Support URL is live, resolves, and shows legal docs
Screenshots match the current build exactly
πŸ’³ Subscription apps
Apple's standard EULA linked in App Store description
Apple's EULA also linked inside the app
All subscription tiers are in a single subscription group
Price, renewal, and cancellation clearly visible before purchase
πŸ”’ Privacy
Privacy policy is clear, accessible, and in plain language
All third-party SDKs audited for data collection
App Privacy nutrition label filled in accurately
πŸ“± Any app
App tested on a physical iPad β€” no crashes
No hardcoded IPv4 addresses in the production build
Demo account credentials included in Review Notes
No placeholder content, beta labels, or broken flows
App offers real, unique utility vs. what already exists
ITSAppUsesNonExemptEncryption declared in Info.plist
Screenshots taken from running app β€” not Figma or mockups
πŸ†• New in 2025–2026
Age rating questionnaire updated (new 13+/16+/18+ tiers β€” Jan 2026)
External AI consent modal added (if sending user data to AI service)
Built with Xcode 16+ now Β· Xcode 26 required from April 28, 2026