Before You Start: What You Actually Need
Before touching Xcode or App Store Connect, make sure you have these in place. An Apple Developer Program membership at $99 per year โ without this, you cannot submit anything. A completed, QA-tested build with no crashes on a real device (Apple reviewers test on physical hardware, not simulators).
A privacy policy hosted at a public URL โ Apple requires this for every app, without exception. App icons in all required sizes generated from a single 1024x1024 PNG (no transparency, no rounded corners in the asset itself). Screenshots prepared for iPhone 6.5 inch and 5.5 inch displays, and iPad 12.9 inch if your app supports iPad.
Your app's age rating determined based on its content. Having all of this ready before you start the submission process saves you from the most common 'incomplete submission' rejections.
Step 1: Set Up Your Apple Developer Account
Go to developer.apple.com and enrol in the Apple Developer Program. If you are submitting on behalf of a company โ which is the right choice for any business app โ enrol as an Organisation rather than an Individual. The Organisation enrolment requires a DUNS number (a free business identifier from Dun and Bradstreet) and Apple's manual verification, which takes two to five business days.
If you do not have a DUNS number, apply for one first and factor that lead time into your launch plan. Once enrolled, you will have access to App Store Connect for listing management, Certificates, Identifiers and Profiles for code signing, and TestFlight for pre-release distribution to testers.
Step 2: Create Your App ID and Provisioning Profile
In your Apple Developer account, create an App ID under Identifiers โ this is your app's unique bundle identifier, for example com.yourcompany.appname. Use reverse domain notation and make sure it exactly matches the bundle identifier in your Xcode project. Next, create a Distribution Certificate under Certificates โ this is the cryptographic proof that the app was built by you or your organisation.
Then create a Distribution Provisioning Profile linked to your App ID and your Distribution Certificate. In Xcode, open your target's Signing and Capabilities settings, set the correct team, and select your Distribution profile for the Archive build. Mismatches between the bundle ID in Xcode and the App ID you registered are one of the most common โ and most confusing โ blockers at upload time.
Step 3: Prepare Your App Store Listing
Log into appstoreconnect.apple.com and create a new app under My Apps. You will need to complete: app name (maximum 30 characters โ this cannot be changed after approval without a new review), subtitle (maximum 30 characters, shows below your app name in search results), description (maximum 4,000 characters โ this is indexed by Apple's search algorithm, so include your primary keywords naturally), keywords field (maximum 100 characters, comma-separated โ do not repeat words from your title or subtitle as they are already indexed), support URL, privacy policy URL (required, no exceptions), and screenshots for every required device size. The description and keywords have a direct impact on App Store Search Optimisation โ treat them with the same care you would give a Google Ads campaign.
Fill all metadata before you archive your build, because the listing must be complete before you can submit.
Step 4: Archive and Upload Your Build
In Xcode, select Any iOS Device โ not a simulator โ as your build destination. Go to Product and select Archive. Xcode will compile a release build and open the Organiser window.
Click Distribute App, select App Store Connect, and choose Upload. Xcode validates your app's code signing, entitlements, and metadata before uploading the IPA to App Store Connect. This validation catches most code signing errors before Apple's servers do.
The upload itself typically takes five to thirty minutes depending on your app's size. Once complete, the build appears in App Store Connect under TestFlight, where you can distribute it to internal and external testers before associating it with your release submission.
Step 5: Submit for Review
In App Store Connect, navigate to your app, go to the relevant platform and version, select your uploaded build, and complete all remaining fields. Answer the export compliance question (most apps answer No to encryption questions unless you implement custom encryption), complete the content rights declaration, set your pricing and availability by territory, and click Submit for Review. Standard review time for new apps is 24 to 48 hours.
Apple will send you an email with the result โ approved, or rejected with a specific guideline reference. If rejected, the reason will appear in App Store Connect under Resolution Center, where you can also communicate with the reviewer before resubmitting.
The Most Common Rejection Reasons โ and How to Fix Each One
Guideline 2.1 (App Completeness): your app crashed during review, or a feature required an account that was not provided to the reviewer. Fix: test on a real device with a fresh install immediately before submitting. If your app requires login, provide a demo account in the App Review Notes field.
Guideline 5.1.1 (Data Collection and Storage): missing NSPrivacyUsageDescription strings in Info.plist for permissions your app requests. Fix: audit every permission your app requests (camera, location, contacts, etc.) and add a plain-English usage description for each in Info.plist. Guideline 4.0 (Design): your UI violates Apple's Human Interface Guidelines โ typically missing Safe Area support, broken layouts on smaller screens, or non-native UI patterns.
Fix: test on all supported device sizes and verify Safe Area insets. Guideline 3.1.1 (In-App Purchase): using a payment system other than Apple's for digital goods or subscriptions. Fix: all digital purchases within the app must go through Apple IAP โ this is non-negotiable and cannot be worked around.
Google Play Store: How Android Differs
Android deployment is generally more straightforward than iOS. You need a Google Play Developer account (a one-time $25 fee), a signed AAB (Android App Bundle) rather than an APK, a completed Play Console listing with all graphics and metadata, and a content rating questionnaire. Review times for new apps are typically three to seven days โ faster for updates from established accounts.
The most common rejection reasons on Android are policy violations around sensitive permissions (especially SMS, call log, or precise location access without a clear justification), misleading metadata, and apps that do not comply with Google's target API level requirements. The Play Console flags most policy issues before submission, which makes Android easier to debug than Apple's review process.
Stuck on deployment or App Review?
Most apps we work with are deployed or unblocked within one to two weeks. Tell us where you are stuck โ we will diagnose the issue and give you a clear plan in the first call.
Get Deployment HelpFrequently Asked Questions
How long does App Store review take?
Standard review for a new app submission takes 24 to 48 hours. Updates to existing apps are typically reviewed faster โ often within 24 hours. Expedited review (available when you have a critical bug fix) can be as fast as a few hours, but Apple grants this on a case-by-case basis.
Why was my iOS app rejected?
The most common rejection reasons are: app crashes during review (Guideline 2.1), missing privacy usage descriptions for permissions requested (Guideline 5.1.1), UI issues that violate Human Interface Guidelines (Guideline 4.0), and use of non-Apple payment systems for digital goods (Guideline 3.1.1). Apple provides a specific guideline number with every rejection.
How much does it cost to submit to the App Store?
Apple charges $99 per year for an individual Developer Program membership, or $299 per year for an Enterprise Program (for internal apps only). There is no per-submission fee. Google Play charges a one-time $25 registration fee with no annual renewal.
Can I submit an app to the App Store without a Mac?
No. iOS app submission requires Xcode, which only runs on macOS. You need a Mac (or a Mac-based cloud service) to archive and upload your build. This is one of the most common surprises for teams whose developers work primarily on Windows or Linux.
What screenshots do I need for App Store submission?
You must provide screenshots for iPhone 6.5 inch (iPhone 14 Pro Max size) and iPhone 5.5 inch (iPhone 8 Plus size) at minimum. If your app supports iPad, you also need iPad Pro 12.9 inch screenshots. App preview videos are optional but significantly improve conversion in search results.