What happens when you submit an iPhone app to Apple
When you submit an app to Apple's App Store, you're sending your finished code to Apple's review team, who check it against their guidelines before deciding whether to publish it. The process takes roughly one to three days, though it can take longer if Apple finds problems. You'll need an Apple Developer account (which costs $99 per year), your app's source code ready to go, and screenshots and descriptions for the store listing.
Apple doesn't just flip a switch and publish. Their reviewers look for crashes, misleading claims, security problems, and violations of their rules — things like apps that secretly collect location data or charge users without clear consent. If they reject your app, they tell you why and you can fix it and resubmit. Most rejections are fixable on the first or second try.
Key Takeaways
- You need an active Apple Developer account ($99 per year) and Xcode (Apple's free development tool) to submit an app to the App Store.
- Before submission, you must create an App ID in your developer account, set up app signing certificates, and prepare screenshots and a description for your store listing.
- Apple's review process typically takes one to three days, and they will reject your app if it violates their guidelines or contains technical problems.
- If Apple rejects your app, they provide specific reasons; most rejections can be fixed by addressing the flagged issues and resubmitting.
- Your app must run on the minimum iOS version you specify without crashing, and you cannot mislead users about what your app does or how it charges.
Setting up your Apple Developer account and environment
Start by enrolling in the Apple Developer Program on Apple's website. You'll need an Apple ID, a valid payment method, and to agree to Apple's terms. Once enrolled, you can download Xcode from the Mac App Store — this is the tool you use to build and submit apps. Xcode is free, but you must run it on a Mac; there's no Windows version.
After Xcode is installed, sign in with your Apple ID inside the app. Go to Xcode > Preferences > Accounts and add your developer account. This connects your local development environment to your Apple Developer account so you can create certificates and submit builds. Without this step, Xcode won't let you sign your app or upload it to Apple.
Creating an App ID and provisioning profile
An App ID is a unique identifier for your app — something like com.yourcompany.appname. You create this in your Apple Developer account under "Certificates, Identifiers & Profiles." Click "Identifiers," then the plus button, select "App IDs," and fill in your app's name and a reverse-domain identifier (the com.yourcompany.appname format). If your app uses specific features like push notifications or in-app purchases, you enable those here.
Next, create a provisioning profile, which tells Apple's servers that your Mac is allowed to sign and submit apps under your developer account. In the same section, click "Profiles," then the plus button, and select "App Store Connect." Choose your App ID, select your signing certificate (Xcode usually creates this automatically), and download the profile. Xcode will use this to sign your app before upload.
Preparing your app for submission
Before you upload, make sure your app runs without crashing on the minimum iOS version you're targeting. Test it on a real device if possible, not just the simulator — simulators don't catch all bugs. Check that all buttons work, text displays correctly, and the app doesn't hang or freeze during normal use. Apple's reviewers will test this themselves, and a crashing app is an automatic rejection.
You'll also need screenshots for the App Store listing. Take at least two screenshots showing your app's main features; Apple requires them in specific sizes depending on the device (iPhone 6.7-inch, 6.1-inch, and 5.5-inch are common). Write a short description (up to 4,000 characters) that explains what your app does, a keyword list for search, and a support URL or email address where users can contact you with problems.
Uploading your app through Xcode or App Store Connect
In Xcode, select your project, then go to Product > Archive. This creates a signed, ready-to-upload version of your app. Once the archive completes, Xcode opens the Organizer window. Click "Distribute App," select "App Store Connect," and follow the prompts. Xcode will validate your app's code and certificates, then upload it to Apple's servers.
Alternatively, you can upload directly through App Store Connect (Apple's web portal for managing apps). Go to App Store Connect, select your app, click "TestFlight" or "Prepare for Submission," and upload your build there. Both routes do the same thing; Xcode is faster if you're already working in the tool, while App Store Connect is useful if you're managing multiple apps or uploading from a different computer.
What Apple's review team checks for
Apple's guidelines cover dozens of rules, but the most common rejection reasons are: the app crashes on launch, it doesn't do what the description claims, it collects personal data without permission, it charges users in a confusing way, or it violates intellectual property (like using someone else's logo without consent). The full guidelines are public on Apple's website under "App Store Review Guidelines," and reading them before submission saves time.
Reviewers also check that your app doesn't contain obvious bugs, that text is legible, and that navigation makes sense. They test on real devices, so if your app works in the simulator but crashes on an actual iPhone, they'll catch it. If your app passes review, it goes live in the App Store within a few hours. If it's rejected, you'll receive an email explaining why, usually within 24 hours of submission.
Resubmitting after rejection
If Apple rejects your app, read their rejection reason carefully — it will be specific. Common fixes include removing code that crashes the app, rewriting misleading descriptions, adding privacy disclosures, or removing features that violate the guidelines. Make the changes in your source code, create a new archive in Xcode, and upload it again. You don't need to wait; you can resubmit immediately.
Include a note in the "Review Notes" section explaining what you fixed. This helps reviewers understand your changes and can speed up the second review. Most apps are rejected only once or twice before approval; if you're stuck after three rejections, Apple's support team can sometimes clarify what they're looking for.
Frequently Asked Questions
Do I have to use Xcode to submit an app?
No. You can build your app in any tool (Flutter, React Native, Unity, etc.) as long as it compiles to an iOS app. You'll still need Xcode installed to create certificates and provisioning profiles, but you can upload through App Store Connect's web interface instead of Xcode itself.
What if Apple rejects my app multiple times?
Read each rejection reason closely and address it directly. If the reason is unclear, use the "Resolution Center" in App Store Connect to ask Apple for clarification. Most rejections stem from guideline violations that are fixable once you understand what Apple wants.
Can I submit an app for free, or does it cost money?
The Apple Developer Program costs $99 per year. There's no per-submission fee. Once you pay, you can submit as many apps as you want that year. If you don't renew, your apps stay in the App Store, but you can't submit updates or new apps.
How long does review actually take?
Most apps are reviewed within one to three days. During busy periods or if your app is complex, it can take up to a week. Apple doesn't publish exact timelines, so check App Store Connect for your specific app's status.
What happens if my app has a bug after it's published?
You can submit an update anytime. Fix the bug in your code, create a new archive, and upload it through Xcode or App Store Connect. Updates go through the same review process as new apps, usually taking one to three days. Users will see a notification that an update is available.