AppPreflight Logo
AppPreflight
loading
Back to Guides

How to Pass App Store Review: Complete Compliance Checklist

AppPreflight Team
2026-06-04
11 min read

How to Pass App Store Review: Complete Compliance Checklist

Publish Date: 2026-05-10
Last Updated: 2026-05-10
Author: AppPreflight Team

Overview

Passing Apple's App Store review is crucial for app success. This comprehensive guide covers the most common reasons apps get rejected and the specific steps you need to take to ensure your app passes on the first submission. By following this checklist, you can reduce rejection rates and get your app live faster.

1. Privacy Policy & Data Collection

Why Apple Cares About Privacy

Apple strictly enforces privacy requirements. Apps without proper privacy policies or improper data collection practices face immediate rejection.

What You Need to Do

Create a Complete Privacy Policy

  • Link to a privacy policy on your app's App Store listing
  • Explain all data collection (location, contacts, calendar, photos, etc.)
  • Specify how you use collected data
  • State data retention periods (how long you keep user data)
  • Explain whether data is shared with third parties
  • Provide information on how users can request data deletion
  • Ensure your policy covers all permissions your app requests

If You Collect Personal Data

  • Explicitly ask for user consent before collecting personal information
  • Show privacy policy before requesting sensitive permissions (location, camera, contacts)
  • Use OS-level permission requests (iOS will show a system prompt)
  • Never access data without user knowledge or permission

Implement Privacy Features

  • Add account deletion functionality if users can create accounts
  • Allow users to delete their data upon request
  • Comply with GDPR if you have EU users
  • Comply with CCPA if you have California users

Common Rejection Reasons

  • "We found that your app's privacy practices do not appear to align with Apple's App Store Review Guidelines."
  • "The privacy policy URL you provided is not accessible or is invalid."
  • "Your app collects personal information but does not disclose this in your privacy policy."

2. In-App Purchase Compliance

Why Apple Cares About IAP

Apple mandates strict rules about in-app purchases to protect consumers. Non-compliance leads to automatic rejection.

What You Need to Do

Display Pricing Clearly

  • Show the exact price (e.g., $9.99/month or $99.99/year) before purchase
  • Display currency clearly
  • Show subscription renewal information prominently
  • Specify any free trial period duration

Implement Required IAP Features

  • Add "Restore Purchases" button in your app settings
  • Allow users to easily upgrade or downgrade subscriptions
  • Send purchase receipts or confirmation emails for paid content
  • Provide clear information about auto-renewal and billing

Handle Subscription Management

  • Implement subscription management in Apple's system (users can manage subscriptions in Settings > Subscriptions)
  • Allow cancellation of subscriptions within the app
  • Clearly show renewal terms and cancellation instructions
  • Process refunds properly if users request them

Common Rejection Reasons

  • "In-app purchase prices are not clearly displayed before purchase."
  • "Your app does not provide a way to restore purchased content."
  • "Subscription terms are unclear or confusing to users."

3. Account Management & Data Deletion

Why Apple Cares

As of 2024, Apple requires apps with user accounts to provide account deletion functionality. This is non-negotiable.

What You Need to Do

Implement Account Deletion

  • Add a "Delete Account" or "Close Account" option in app settings
  • Make the deletion process straightforward (maximum 2-3 taps)
  • Ensure actual deletion happens on your server, not just on the device
  • Delete all associated user data when account is deleted
  • Send confirmation email after deletion
  • Do not re-collect the same data for deleted users

Provide Account Management Options

  • Allow users to edit their profile information
  • Allow users to change their password
  • Allow users to view their saved data
  • Provide an option to download user data (for transparency)

Common Rejection Reasons

  • "Your app includes an account system but does not provide a way to delete accounts."
  • "Users cannot delete their accounts from within the app."
  • "Account data is not fully deleted when users delete their accounts."

4. App Functionality & Quality

Why Apple Cares

Apple only accepts apps that work as advertised without crashes or bugs.

What You Need to Do

Quality Assurance

  • Test your app thoroughly on multiple iOS devices
  • Test on different screen sizes (iPhone 12, 13, 14, etc.)
  • Test on different iOS versions (back to the minimum supported version)
  • Ensure no crashes, freezes, or performance issues
  • Use real devices for testing, not just simulators
  • Test all features mentioned in your app description

Remove Debug Content

  • Remove all debug menus or developer options
  • Remove test/placeholder accounts
  • Remove performance profiling tools
  • Remove any hardcoded backend URLs pointing to test servers
  • Ensure all content is appropriate (no profanity, violence, or explicit content)

Validate Against App Description

  • Ensure every feature you advertise actually works
  • Screenshots should match current app version
  • App functionality should match its description exactly

Common Rejection Reasons

  • "Your app crashed during review."
  • "Your app's functionality does not match its description."
  • "Your app contains debug content or test data."

5. Design & User Interface

Why Apple Cares

Apple wants a consistent, high-quality iOS experience. Apps that look like Android apps or copy other brands face rejection.

What You Need to Do

Follow iOS Design Guidelines

  • Use iOS-standard UI components (UIKit or SwiftUI)
  • Follow iOS navigation patterns (back buttons, tab bars, etc.)
  • Use iOS-standard icons and buttons
  • Ensure consistent design throughout the app

Avoid Android Elements

  • Do not use Android-style back buttons or hamburger menus
  • Do not use Android permissions warnings
  • Do not mention "Android" or suggest the app is cross-platform in confusing ways
  • Use bottom tab bars or iOS navigation controllers

Branding & Content

  • Do not use competitor logos or brands
  • Do not use Apple, Google, or other copyrighted logos without permission
  • Avoid using Apple's Siri, App Store, or other proprietary names
  • Use original content and graphics

Common Rejection Reasons

  • "Your app uses Android design patterns that violate iOS guidelines."
  • "Your app contains third-party branding or logos without permission."
  • "Your app's UI is not consistent with iOS standards."

6. Permissions & Security

Why Apple Cares

Apple wants to protect user security and privacy. Improper permission requests are a red flag.

What You Need to Do

Request Only Necessary Permissions

  • Only request permissions you actually use
  • Request permissions when needed, not at app launch
  • Explain why you need each permission in your app
  • Provide alternative functionality if users deny permissions
  • Never require permissions that aren't essential to core features

Use Secure Authentication

  • If you have user accounts, use secure password hashing (bcrypt, Argon2)
  • Support biometric authentication (Face ID, Touch ID) if possible
  • Implement HTTPS for all API calls
  • Never store passwords in plain text
  • Invalidate sessions on logout

Handle User Data Securely

  • Encrypt sensitive data stored on the device
  • Use secure API endpoints with valid SSL certificates
  • Do not transmit personal data in URLs or logs
  • Clear cached data when user logs out

Common Rejection Reasons

  • "Your app requests unnecessary permissions."
  • "Your app requests location permission but does not use it."
  • "Your app stores passwords in plain text."

7. Content Rating & Age Restrictions

Why Apple Cares

Apple wants apps categorized correctly to protect minors from inappropriate content.

What You Need to Do

Set Correct Content Rating

  • Complete Apple's content rating questionnaire honestly
  • Disclose all potentially sensitive content (violence, language, drugs, etc.)
  • Choose the age rating that matches your content
  • Update ratings when content changes

Age-Restricted Content

  • If your app has adult content, mark it as "4+" (minimum) or higher
  • Implement age verification if your app is for 17+ only
  • Do not include content that violates Apple's guidelines in any rating category

Common Rejection Reasons

  • "Your app's content rating does not match its actual content."
  • "Your app contains explicit content but is rated for all ages."

8. Testing Your App Before Submission

Pre-Submission Checklist

Before submitting to App Store, run through this complete checklist:

  • All links in your app and app description work correctly
  • Support URL, privacy policy URL, and support email are valid
  • App name, description, keywords, and screenshots are accurate
  • App category and subcategory are correct
  • Build number and version are incremented
  • Certificate and provisioning profile are valid
  • App does not access App Store or iTunes Store inappropriately
  • App does not present a license agreement on startup
  • No hardcoded environment variables or API keys
  • All analytics and tracking work properly
  • Metadata review (spelling, grammar, capitalization)

Use AppPreflight for AI-Powered Review

Before official submission, consider running an AppPreflight AI pre-review:

  • Analyzes your screenshots for common rejection reasons
  • Identifies privacy policy and IAP issues
  • Checks for missing account deletion functionality
  • Reviews UI for iOS compliance
  • Provides actionable recommendations

This can save you time and increase first-time approval rates.

9. Common Mistakes to Avoid

MistakeWhy It's RejectedHow to Fix
No privacy policyPrivacy violationAdd complete privacy policy with all disclosures
Unclear pricingConsumer protectionDisplay prices clearly before purchase
No account deletionRegulatory requirementAdd account deletion feature in settings
App crashesQuality issueTest thoroughly on multiple devices
Android UI designPlatform deviationUse iOS standard components and patterns
Missing restore purchasesIAP requirementImplement restore purchases in settings
Excessive permissionsSecurity riskRequest only necessary permissions
Outdated screenshotsMisleading contentUpdate screenshots to match current app

10. After Rejection: What to Do Next

If your app gets rejected:

  1. Read Apple's Feedback Carefully

    • Understand exactly why it was rejected
    • Note any specific sections of App Store Review Guidelines mentioned
  2. Consult App Store Review Guidelines

    • Visit Apple's official guidelines for the specific issue
    • Look for examples of compliant apps in your category
  3. Make Required Changes

    • Fix all issues mentioned in the rejection
    • Go beyond minimum fixes to prevent re-rejection
  4. Re-Test Your App

    • Run AppPreflight again to catch any new issues
    • Test thoroughly before re-submission
  5. Resubmit

    • Increment build number and version
    • Add notes explaining your changes (optional but helpful)
    • Submit with confidence

Key Takeaways

Privacy First: Complete privacy policy with data deletion
IAP Compliance: Clear pricing and restore purchases
Account Management: Implement account deletion
Quality: Thorough testing on real devices
iOS Standards: Use iOS design patterns
Secure: Use HTTPS and proper authentication
Content Rating: Honest rating matching actual content

Next Steps


Need help? Visit our FAQ or check out AppPreflight's AI Pre-Review Tool to analyze your app.


Was this guide helpful?