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.
App Store vs Google Play at a glance
| App Store | Google Play |
| Fee | 99 USD per year | 25 USD once |
| Review time | 90% in under 48 hours | A few hours to 7 days, longer for new accounts |
| Testing gate | None (TestFlight is optional) | New personal accounts: 12 testers for 14 days, then a production access review |
| Build format | Xcode 26+ archive with the iOS 26 SDK | Android App Bundle (.aab) targeting API 36 |
| Signing | Xcode automatic signing with a cloud-managed Apple Distribution certificate | Play App Signing: Google holds the app key, you keep the upload key |
| Privacy disclosure | App Privacy labels | Data safety form |
| Age rating | Apple’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.