After releasing 9 apps over the past few months, I decided to create a checklist for myself to streamline the submission process and minimize the risk of rejections from Apple reviewers. While this checklist may not be perfect for everyone, it has worked well for me, and I stick to it for all of my apps because it fits my needs.

For example, Apple automatically makes your app available for Mac and Vision Pro. They do this to show customers that there’s a large selection of apps for these devices, especially since the number of apps available for them is limited compared to iOS. Unfortunately, this often backfires, as users expect to have a good experience using your iOS app on a Mac, for example. This happened to me several times, and I wasn’t aware that my iOS app was available for Mac, which led to user complaints. Since I don’t test my iOS apps on other platforms, I can’t guarantee a great user experience, so I opt not to make my apps available on devices like Mac and Vision Pro.

Another helpful tip: app reviewers often struggle to locate in-app purchases, which has led to multiple rejections for me in the past. To avoid this, I now always include a detailed step-by-step explanation on where to find the paywall.

Although some fields are mandatory and you can’t submit your app without them, I still find this checklist helpful to simplify the process. Here’s my checklist:

Before Archive

  • Screenshots
    • Capture screenshots showcasing the app’s key features for the App Store
    • Capture screenshots of the paywall
  • Landing Page
    • Design a landing page featuring the screenshots, including a contact page and privacy policy
  • Final Code Updates
    • Add the privacy policy URL to the paywall
    • Set “App Uses Non-Exempt Encryption” to “NO” in the Info.plist

After Archiving and Uploading to App Store Connect

  • iOS App Version 1.0
    • Previews and Screenshots
      • Upload the screenshots and order them
      • Write a description for all supported languages
      • Include “Terms of Use: https://www.apple.com/legal/internet-services/itunes/dev/stdeula/” if the app includes subscriptions
      • Add keywords (Use Search Ads to identify keywords and avoid spaces around commas separating keywords)
      • Provide the landing page’s contact URL as the Support URL
      • Add the landing page’s URL as the Marketing URL
      • Add Copyright information
    • Build
      • Select the latest build
    • In-App Purchases and Subscriptions
      • Select the in-app purchases and subscriptions used in the app
    • App Review Information
      • Add contact information
      • Add notes: Include information about where to find the in-app purchases within the app
    • App Store Version Release
      • Select “Manually release this version”
  • App Information
    • Localizable Information
      • Add Name and Subtitle for all available languages
    • General Information
      • Select the main and subcategories for the app
    • Age Rating
      • Select “None” for all Apple Content Descriptions
    • App Store Server Notifications
  • App Privacy
    • Privacy Policy
      • Add the privacy policy URL from the landing page
    • Data Types
      • Select “No” for Data Collection
    • Monetization
      • In-App Purchases & Subscriptions
        • Keep them as waiting for review
        • Upload screenshots of the paywall in the Review Information section
      • Pricing and Availability
        • Set the price (e.g., $0.00 if the app is free) and select availability (all countries)
        • Uncheck “Make this app available” for Apple Silicon Macs and Apple Vision Pro

I hope you find this checklist helpful.


Older post

Don't rely on BGAppRefreshTask for your app's business logic

Why you shouldn’t rely on background app refresh tasks for critical data updates in your app.