🍱 Lunchbox Hands

App Store Submission Checklist

Every step to get an iOS app approved on the App Store, as a TL;DR checklist you can tick off

TL;DR: enroll ($99/year), build with Xcode 26, make your icon and screenshots, fill in App Store Connect, answer the privacy and age rating questions, test on TestFlight, and submit. Apple reviews 90% of apps in under 48 hours, so if your app is ready, the slow parts are usually enrollment and assets, not review. Each step below has the gotcha that trips people up, a link to Apple’s own docs, and the free tool here that handles it. Tick steps off as you go; your progress stays in this browser.

Last verified 21 October 2026 against Apple’s developer documentation and the App Review Guidelines (updated 16 October 2026). Shipping Android too? Use the Google Play Publishing Checklist.

0 of 46 done

Last verified 21 October 2026

  1. Developer account

    0 of 4 done

    Enroll once, under your real legal name. Organizations need a D-U-N-S Number first.

    1. Often 1–3 days (no official SLA)

      Membership is 99 USD per year (prices vary by region) and renews automatically. Individuals can enroll in the Apple Developer app by photographing a driver’s license or government photo ID. As an individual, your legal name is shown as the seller on the App Store.

      Gotcha: Use your exact legal name on your Apple Account before you start. An alias or company name causes a delay, and you must use the same device for the whole enrollment.

    2. If it appliesUp to 5 business days + 2 for Apple

      To enroll as a company you need a legal entity (no DBAs or trade names), binding authority, a work email on your domain, a public website, and a D-U-N-S Number. Sole proprietors are told to enroll as individuals instead.

      Gotcha: Banking, healthcare, gambling, and VPN apps must be submitted by an organization, not an individual. Pick the right account type before you build.

    3. In App Store Connect, go to Business > Agreements > Compliance and declare whether you’re a trader under the EU Digital Services Act. Apple requires a declaration even if you don’t distribute in the EU. Apps without trader status are removed from the EU App Store.

      Gotcha: If you’re a trader, your contact details are published on your EU product page. Individuals can supply a P.O. box (with proof) instead of a home address.

    4. Your agreements must be in effect before an approved app can go live, and only the Account Holder can accept them. If you charge for the app or sell in-app purchases, you’ll also need the Paid Apps agreement plus banking and tax info.

  2. Project & signing

    0 of 7 done

    Lock in your bundle ID, let Xcode sign for you, and meet the current SDK floor.

    1. Register an explicit App ID that matches the bundle ID in your Xcode target. Reverse-DNS (com.yourcompany.app) is the usual convention.

      Gotcha: You can’t change the bundle ID after you upload a build, so get it right before your first TestFlight upload.

    2. Xcode uses cloud-managed Apple Distribution certificates, so solo developers never need to export a .p12. Xcode can even create the App Store Connect record on your first upload.

      Gotcha: Only the Account Holder or an Admin can create distribution certificates. A teammate with the Developer role gets blocked when archiving for the store.

    3. Since 28 April 2026, uploads must be built with Xcode 26 or later using an iOS 26 (or matching platform) SDK. Apple usually raises the floor each spring, so check Upcoming Requirements before you plan a release.

      Gotcha: Builds made with an older Xcode are rejected at upload, before review even starts.

    4. Since 9 September 2026, iOS and iPadOS apps uploaded to App Store Connect must target iOS 13 or later.

    5. Set it to NO if your app (and every library it links) uses no encryption or only exempt encryption, such as the HTTPS built into the OS via URLSession. Otherwise set YES and follow Apple’s documentation steps. Adding the key skips the export compliance questions on every build.

      Gotcha: A third-party SDK that bundles its own crypto (for example OpenSSL) can flip this to YES and may require extra documentation, like a French encryption declaration if you distribute in France.

    6. Apple keeps a list of about 110 common SDKs (Firebase, Alamofire, Flutter, Lottie, OneSignal, and more) that must include a privacy manifest, plus signatures for binary dependencies.

    7. Every NS…UsageDescription string should say exactly why you need the permission. Don’t gate features on permissions you don’t need, and prefer the photo picker or share sheet over full library access.

      Gotcha: Vague purpose strings and unnecessary permissions are a classic guideline 5.1.1 rejection.

  3. Store assets

    0 of 6 done

    Icon from your build, at least one screenshot set per required device, plus optional previews and iOS 27 art.

    1. The App Store icon comes from your build: add it in an asset catalog or with Icon Composer, then upload. Make it a full square; the system applies the rounded corners. Changing it later needs a new version.

      Gotcha: Keep the 1024 px icon fully opaque. Apple’s current pages don’t spell this out, but transparent App Store icons have long been rejected at upload.

      • Our tool:App Icon GeneratorExports every iOS size, including an opaque 1024 px App Store icon
      Apple docs: Add an app icon (opens in a new tab)
    2. Apple requires at least one screenshot for iPhone with Dynamic Island (medium display), the 6.1–6.3 inch class. You can upload 1–10 per size as PNG or JPEG. Apple’s table also requires a large-display set: 6.9 inch (1320 × 2868, recommended) or 6.5 inch (1284 × 2778) if you skip 6.9.

      Gotcha: Screenshots can’t contain an alpha channel and must show the app in use, not just a splash or login screen (guideline 2.3.3). Older advice that 6.5 inch is the required size is out of date.

      Apple docs: Screenshot specifications (opens in a new tab)
    3. If it applies

      Apps that support iPadOS need at least one screenshot for the iPad 13-inch display: 2064 × 2752 or 2048 × 2732. Smaller iPad sizes are scaled down from it automatically.

    4. If it applies

      The foldable iPhone Duo has outer (1398 × 2034) and inner (2007 × 2853) screenshot sizes. They’re optional today and earn a badge on your product page. Starting April 2027 they’re required for apps built with the iOS 27.1 SDK or later.

    5. If it applies

      Up to three previews per device size and language, 15–30 seconds, H.264 at up to 30 fps, under 500 MB. iPhone previews are 886 × 1920 portrait.

      Gotcha: Previews must be screen captures of the app itself (guideline 2.3.4), not a marketing trailer.

    6. If it applies

      Since 5 October 2026, apps can show a product page header (3840 × 1646) and a search results image (up to 3840 × 2560) on iOS 27 and later. Upload them in the new Asset Library; they don’t need an app update.

      Gotcha: No prices, discounts, or misleading references to other apps (guideline 2.3.14), no alpha channel, and keep it 4+ appropriate.

      Apple docs: Creative assets specifications (opens in a new tab)
  4. App Store Connect record

    0 of 6 done

    Name, text, URLs, and categories. Most of this can be edited until you submit.

    1. Choose the bundle ID, a primary language, and a SKU (letters, numbers, hyphens, periods, underscores). Xcode can also create the record for you on first upload.

      Gotcha: The SKU can’t be changed after you create the record.

    2. The name must be 2–30 characters; the subtitle can’t be longer than 30. You can edit the name until you submit.

      Gotcha: No prices, competitor names, or other platforms (like Android) in your name, subtitle, or keywords, and all metadata must suit a 4+ audience (guidelines 2.3.7, 2.3.8, 2.3.10).

    3. The description is plain text, up to 4000 characters. Keywords are limited to 100 bytes, not characters, so accented and non-Latin letters use more. Promotional text (170 characters) can be changed any time without a new submission.

      Gotcha: Describe what the app really does. Inaccurate metadata is guideline 2.3, one of the most common rejections.

    4. A privacy policy URL is required for iOS apps. Guideline 5.1.1(i) also requires an easy-to-find link inside the app, and the policy must cover what you collect, which third parties get it, retention and deletion, and how to revoke consent.

      Gotcha: Linking it in App Store Connect but not in the app (or linking a dead page) gets you rejected.

      Apple docs: Guideline 5.1.1(i) (opens in a new tab)
    5. The support URL is required, must include the protocol (https://), and must lead to actual contact information. A marketing URL is optional.

  5. Privacy & ratings

    0 of 7 done

    Privacy labels and the age rating are required. The rest depends on what your app does.

    1. Required for every new app and update. You must include what your third-party SDKs (analytics, ads, crash reporting) collect, not just your own code. Data processed only on the device doesn’t count as collected. You can update answers any time without a new build.

      Gotcha: Labels that don’t match what your SDKs really collect are a 5.1.2 problem. Audit every SDK before answering.

      Apple docs: App privacy details (opens in a new tab)
    2. Ratings are now 4+, 9+, 13+, 16+, and 18+. Since September 2026, the questionnaire’s social media capability questions are required for new apps and updates. Count AI chat and generation features too: unrestricted web access pushes you to 16+, and social media features to 13+.

      Gotcha: If your terms set a higher minimum age than Apple calculates, you must choose “Override to Higher Age Rating”. Mis-rating can trigger a regulator inquiry (guideline 2.3.6).

    3. If it applies

      You need ATT permission to track users or read the advertising identifier. Ad SDKs that combine data across apps count as tracking even if you don’t use them that way. Using IDFV for analytics across your own apps doesn’t need ATT.

      Gotcha: Never require tracking (or push or location) to unlock features (guideline 5.1.2).

    4. If it applies

      Deletion must start inside the app (for example Settings > Delete Account) and delete the whole account, though it can finish on a web page or run asynchronously. If you use Sign in with Apple, revoke the user’s tokens too.

      Gotcha: Only offering to deactivate an account, or telling people to email you, doesn’t count (guideline 5.1.1(v)).

    5. If it applies

      If you offer third-party or social login, you must also offer another login service that limits data to name and email and lets users hide their email. Sign in with Apple qualifies, but Apple no longer mandates it specifically.

      Gotcha: Not needed if you only use your own account system, or for enterprise, education, government ID, or client apps for a specific third-party service (guideline 4.8).

    6. If it applies

      Unlocking features or content inside the app must use in-app purchase, with a way to restore purchases. Physical goods and services can use other payment methods. On the US storefront you can now also link to external purchases.

      Gotcha: License keys, QR codes, or crypto to unlock features are not allowed (guideline 3.1.1).

    7. If it applies

      Apps with user-generated content or AI generation need content filtering, a way to report and block, and published contact info. Random or anonymous chat is explicitly covered.

  6. Upload & TestFlight

    0 of 3 done

    Upload a build, test it on real devices, and optionally run an external beta.

    1. Product > Archive, then in the Organizer choose Distribute App > TestFlight & App Store. Run Validate App first to catch problems early. Transporter, altool, and the App Store Connect API also work.

      Gotcha: The build has to finish processing before you can use it. Apple emails you when it’s ready.

    2. Minutes after processing

      Up to 100 App Store Connect users on your team can test right away, with no review. Crashes and obvious bugs are a guideline 2.1 rejection, so this is your safety net.

    3. If it applies

      Up to 10,000 external testers per app, by email or a public link. Enter a beta description and feedback email first. The first build needs a full TestFlight App Review; later builds of the same version might not.

      Gotcha: TestFlight builds expire after 90 days.

      • Our tool:QR Code GeneratorTurn your public TestFlight link into a QR code testers can scan
      Apple docs: Invite external testers (opens in a new tab)
  7. Submit for review

    0 of 7 done

    Attach the build, give the reviewer everything they need, and choose how to release.

    1. The usual ones: crashes, placeholder content, or broken links (2.1); inaccurate metadata or screenshots (2.3); a thin website wrapper (4.2); a copy of an app type that already exists in bulk (4.3); and privacy gaps (5.1.1).

      Gotcha: As of 16 October 2026, hidden or dormant features that appear after review (guideline 2.5.19) can get your developer account terminated.

    2. Select the processed build on the version page. Create your in-app purchases in App Store Connect and add them to the same submission so the reviewer can test them.

      Gotcha: In-app purchases that aren’t visible or working for the reviewer are a 2.1(b) rejection.

    3. If any feature needs sign-in, enter a working username and password in App Review Information, and keep your backend running during review. A built-in demo mode is only allowed with Apple’s prior approval.

      Gotcha: Expired credentials or a server that’s down during review is a quick 2.1 rejection.

    4. Explain anything non-obvious: how to reach key features, hardware needed, or why a permission is used (up to 4000 bytes). Add a contact name, email, and phone number in international format (+1…).

      Gotcha: Generic notes about new features are rejected. Describe them specifically (guideline 2.3.1).

    5. Pick “Manually release this version”, “Automatically release”, or “Automatically release after App Review, no earlier than” a date. Once released, it can take up to 24 hours to appear on the App Store.

    6. Usually under 48 hours

      Apple says it typically reviews 50% of submissions in under 24 hours and 90% in under 48. You can only have one version under review per platform at a time.

    7. If it applies7 days

      Updates can roll out over 7 days to 1, 2, 5, 10, 20, 50, then 100% of auto-update users. You can pause for up to 30 days or release to everyone at any time.

      Gotcha: Phased release only exists for updates. Your first version goes out to everyone at once.

  8. If you’re rejected

    0 of 6 done

    Most rejections are fixable in a day. Read the message, fix the exact issue, reply or resubmit.

    1. Rejections appear as App Review messages in the App Review section of your app in App Store Connect. (Apple no longer calls it the “Resolution Center”.)

    2. If the problem is only metadata (text, screenshots, URLs), you can fix it and resubmit without uploading a new build.

    3. If the reviewer misunderstood something, reply in App Store Connect (up to 4000 characters, with attachments like a screen recording).

      Gotcha: Getting rejected repeatedly for the same guideline makes future reviews take longer.

    4. If it applies

      Apple asks for only one appeal per rejected or removed app, covering every guideline cited. Use it when you believe the guideline was misapplied.

    5. If it applies

      For apps already on the store, Apple won’t delay bug fixes over guideline issues unless they’re legal or safety related. Reply to the message instead of resubmitting, and fix the deferred issue in your next version.

      Gotcha: A deferred issue can’t be deferred a second time.

    6. If it applies

      Submit first, then file the expedited review request. Apple grants them for things like critical bug fixes or launches tied to an event, as availability allows.

      Gotcha: Abuse it and Apple may reject your future requests.

App Store vs Google Play at a glance

App StoreGoogle Play
Fee99 USD per year25 USD once
Review time90% in under 48 hoursA few hours to 7 days, longer for new accounts
Testing gateNone (TestFlight is optional)New personal accounts: 12 testers for 14 days, then a production access review
Build formatXcode 26+ archive with the iOS 26 SDKAndroid App Bundle (.aab) targeting API 36
SigningXcode automatic signing with a cloud-managed Apple Distribution certificatePlay App Signing: Google holds the app key, you keep the upload key
Privacy disclosureApp Privacy labelsData safety form
Age ratingApple’s questionnaire (4+, 9+, 13+, 16+, 18+)IARC questionnaire

The Android side has more steps and one big wait: the closed test. Our Google Play Publishing Checklist walks through it.

Tools for every step

For more depth on individual steps, see our guides to TestFlight internal and external testing, App Store screenshot sizes, and in-app account deletion. Shipping on Android too? App Store vs Google Play puts both stores side by side.

The rejections worth knowing by number

Most first-time rejections come from a handful of guidelines. 2.1 is anything unfinished: crashes, placeholder text, dead links, or a demo account that doesn’t work. 2.3 is metadata that doesn’t match the app, including screenshots of only a splash screen. 4.2 is a thin wrapper around a website. 4.3 is spam: one more app of a type the store is already full of, or several copies of your own. 5.1.1 is privacy: no in-app policy link, unnecessary permissions, or no way to delete an account. The full text is in Apple’s App Review Guidelines.

Frequently asked questions

How long does App Store review take?

Apple says App Review typically finishes at least 50% of submissions in under 24 hours and 90% in under 48 hours. After approval, a released version can take up to 24 hours to show up on the App Store. Developer Program enrollment has no published timeline; it’s often a day or two, but it can stall for weeks if your ID doesn’t match your Apple Account name.

How much does it cost to publish an app on the App Store?

The Apple Developer Program costs 99 USD per membership year (prices vary by region) and renews automatically. Fee waivers exist only for nonprofits, accredited educational institutions, and government entities. There’s no per-app fee, and a D-U-N-S Number for organizations is free.

Do I need a Mac to publish an iOS app?

In practice, yes. Since 28 April 2026, Apple requires uploads to be built with Xcode 26 or later and the iOS 26 SDK, and Xcode runs only on macOS. If you don’t own a Mac, a rented cloud Mac or a CI service with macOS build machines can build and upload for you.

Why was my app rejected under guideline 2.1, 4.3, or 5.1.1?

2.1 (App Completeness) usually means a crash, placeholder content, broken links, a missing or expired demo account, or a backend that was down during review. 4.3 (Spam) means your app looks like many others already on the store (flashlights, simple timers, wallpapers, fortune telling) or you submitted near-duplicates under several bundle IDs; explain what’s meaningfully different, or merge them into one app. 5.1.1 (Data Collection and Storage) covers a missing in-app privacy policy link, vague permission strings, forcing a login the app doesn’t need, and missing in-app account deletion.

What screenshot sizes does the App Store require?

At least one screenshot for iPhone with Dynamic Island (medium display), which is 1179 × 2556 or 1206 × 2622 pixels, and at least one for the iPad 13-inch display (2064 × 2752 or 2048 × 2732) if your app runs on iPad. It’s safest to also add a large iPhone set at 6.9 inch (1320 × 2868) or 6.5 inch (1284 × 2778). You can upload 1 to 10 per size, as PNG or JPEG with no alpha channel. iPhone Duo screenshots become required in April 2027 for apps built with the iOS 27.1 SDK.

Does TestFlight need App Review?

Internal testing (up to 100 people on your App Store Connect team) doesn’t. External testing (up to 10,000 testers by email or public link) does: the first build needs a full TestFlight App Review, and later builds of the same version might not. TestFlight builds expire after 90 days.

Do I need a privacy policy for the App Store?

Yes, every iOS app needs one, even if it collects nothing. Guideline 5.1.1(i) requires the link in App Store Connect and an easy-to-find link inside the app. The policy has to say what data you collect, which third parties receive it, how long you keep it, and how users can delete it or revoke consent.

Is Sign in with Apple required?

Only in a specific case, and even then not Sign in with Apple itself. Under guideline 4.8, if your app offers third-party or social login such as Google or Facebook, you must also offer an equivalent login option that limits data to name and email, lets people hide their email, and doesn’t track them for ads without consent. Sign in with Apple meets that bar, but so can other services. Apps that only use their own account system don’t need it.

What should I do if my app is rejected?

Open the App Review message on your app’s page in App Store Connect. If it’s a metadata issue, fix the listing and resubmit the same build. Otherwise fix the cited issue and submit a new build, or use Reply to App Review to explain. You can file one appeal per rejected app with the App Review Board, and live apps can often get a bug fix approved while a guideline issue is deferred to the next version.

Get weekly dev tools and tips