How to publish an app to the App Store—step-by-step guide

Follow us on social media to stay up to date
14 min read
Apple’s review process is a system with clear rules. Learn those rules, and suddenly you’re not just submitting apps blindly anymore.
Subscribe to our monthly newsletter
You’ve poured weeks or maybe months into building something great. Now comes the final challenge: getting it past Apple’s review process.
Let’s be honest—this isn’t some quick upload. Apple’s team will scrutinize everything:

  • How your app performs under pressure
  • Whether the design meets their strict standards
  • If your privacy setup protects users properly
  • Entire user experience

No guesswork, no surprises—just a straightforward path from your Xcode project to the “Ready for Sale” status.

This isn’t another fluffy “how-to.” It’s the exact checklist we use when submitting an app to the App Store — and getting client apps approved.
Before you begin: app readiness and compliance
Before submitting your app to the App Store, it must meet Apple’s technical, legal, and quality standards. Not quite a formality—it’s a full-stack review of your product. Incomplete, unstable, or non-compliant apps won’t make it through.

Ask yourself these questions:

  1. Does your app actually feel done? Is it stable, polished, and ready to use?
  2. Does it meet Apple’s App Review and Human Interface Guidelines? If you’re building an app for children, it must also comply with COPPA (The Children’s Online Privacy Protection Act) and Apple’s Safety for Kids policies.
  3. Are you legally allowed to publish everything it contains?

Let’s break it down.
Functionality and stability
Every feature described in your App Store listing must be present and working. No dead buttons, no loading spinners with nowhere to go. Reviewers test the app like a regular user—and expect consistent UX across the flow. These details can make or break the process of submitting an app to the App Store.

To avoid technical rejection:

  • Remove all test data and debugging code
  • Clean up empty menus, placeholder screens, or “coming soon” sections
  • Make sure the build runs smoothly on physical devices
  • Check your Xcode version and make sure you’re not using any beta frameworks or non-production components

Apple recommends testing using real hardware across multiple iOS versions.
Performance and efficiency
Your app should launch quickly, respond instantly, and run efficiently. Excessive battery drain, memory leaks, or UI lag can trigger rejection.

Use Xcode’s Instruments to:

  • Monitor memory usage and frame rendering
  • Detect slow views or animations
  • Test cold/warm launches

A poor-performing app may technically “work,” but still fail to deliver the experience Apple expects.
User data and privacy
When accessing user data (locations, camera, emails, etc.), Apple doesn't just want compliance—they want demonstrable respect for privacy. Cut corners here and you risk more than rejection; you lose user confidence.

Here's how to avoid rejection:

  • Ask properly. Don't just grab data—request permission in a way that makes sense in the moment.
  • Explain why. That little popup needs a clear, honest reason.
  • Update your Info.plist. Every permission request needs a matching key and explanation string in your app's configuration.
  • Tell the full story. Your App Store privacy details should match exactly what you collect.

You also need:

  • A publicly accessible privacy policy—it is linked in App Store Connect
  • Secure data handling methods—select the relevant options (e.g. HTTPS, local encryption) during submission

That analytics SDK or social login library you're using? It could tank your entire submission if you're not careful. Apple's reviewers have gotten extremely strict about what happens behind the scenes in your app.
Legal compliance
The content inside your app must be yours—or used with proper rights. That includes:

  • Music
  • Images and illustrations
  • Text and copy
  • External APIs and databases

Pro-tip: before hitting publish, run everything by your legal team first: images, audio clips, or any third-party content you're using.

Apple's reviewers often ask for proof you have rights to use them. We’ve seen plenty of apps get held up over this.

For European launches, GDPR compliance becomes mandatory. Subscription-based apps and those offering in-app purchases must present billing terms transparently. The requirements include:

  • Clear disclosure of all payment terms
  • Straightforward cancellation processes
  • No hidden conditions in fine print
Developer readiness
To submit an app to the App Store, you must have:

  • A registered Apple Developer account
  • An Apple ID with two-factor authentication enabled
  • The correct provisioning profiles and certificates
  • Access to App Store Connect

We also recommend versioning your builds properly:

  • Version = user-facing release (e.g. 1.0.0)
  • Build = internal iteration (e.g. 1, 2, 3…)

Keep these in sync between Xcode and App Store Connect—inconsistencies will block submission.

Now we can move on to the step-by-step guide on how to submit an app to the App Store.
Step 1: Join the Apple Developer Program
To submit apps to the App Store, you'll need an active Apple Developer Program membership. Here's what that involves:

  • For individual developers: a valid Apple ID with two-factor authentication enabled
  • For organization: a D-U-N-S number, legal business entity status, an active website, and authority to represent your organization

This will cost you $99 per year.
After signing up for the Apple Developer Program, you'll gain access to Xcode—Apple's development environment for creating iOS apps.

This free tool, available in the Mac App Store, provides everything you need in one place:

  • Code editing capabilities
  • Interface design tools
  • Build configuration settings
  • App Store submission features

To connect your developer account:

  1. Launch Xcode
  2. Navigate to Preferences in the menu
  3. Select the Accounts tab
  4. Add your Apple Developer credentials

Signing up for the Apple Developer Program is like getting backstage access to everything you'll need to launch your app. Suddenly, you get all of Apple's publishing tools at your fingertips.

App Store Connect becomes your mission control for managing the store listing. TestFlight lets you beta test with real users before going live. And you'll get all those crucial technical bits—certificates, analytics, the works—to ensure your launch goes smoothly.

Now, if you're planning to charge for your app or offer in-app purchases, there's some extra housekeeping. Before you can start making money, you'll need to sort out the legal and financial side in App Store Connect under Agreements, Tax, and Banking.

That's where you'll set up contracts and payment details—not the most exciting part, but necessary if you want to monetize your work.
Step 2: Create an app in App Store Connect
App Store Connect is where you’ll manage your app post-submission—from metadata and builds to analytics and user reviews.

To create a new record:

  1. Log in to App Store Connect
  2. Go to My Apps → click the + → New App
  3. Fill out:
  • Platform: iOS
  • App name: unique across the store
  • Primary language
  • Bundle ID: must match the one set in Xcode
  • Stock Keeping Unit (SKU): your internal identifier, not visible to users
You’ll then choose your app’s pricing and availability settings. Apple allows you to set regional pricing, release schedule (immediate, scheduled, or manual), and distribution rights.

You can manage multiple versions under this record, set access roles, and configure product-level settings like age ratings, features, and reference metadata.
Step 3: Prepare your app in Xcode
With your App Store Connect listing ready, it's time to configure your Xcode project. Here's what you'll need to do:

In your Xcode project:

  • Make sure your bundle ID in Xcode matches exactly what you entered in App Store Connect
  • For version numbers, start with 1.0.0 for your initial release (following the Major.Minor.Patch format). Each time you archive a new build, simply increase the build number sequentially (1, 2, 3, etc.).
  • Don't forget about your app icon—it needs to be a 1024x1024 PNG file with square edges, 8-bit color (sRGB or P3 wide-gamut), no transparency, and no alpha channels
  • Your launch screen matters more than you might think. A storyboard-based launch screen that visually matches the app UI actually makes your app feel faster and improves the user experience.

Before you archive, double-check these settings under General → Identity:

  • Version number
  • Build number
  • Deployment target

One last thing—if your app uses special Apple features like push notifications or HealthKit integration, there's some extra setup required. You'll find these options in Xcode's Signing & Capabilities tab.

A word of advice from experience: don't leave this for the last minute. Each of these services needs its own configuration.
Step 4: Test with TestFlight (We highly recommended)
Before your app goes live, TestFlight is your best friend for catching bugs and gathering feedback. Here’s how to make the most of it:

  1. Archive and upload your app
  2. Go to the TestFlight tab in App Store Connect
  3. Add internal testers (using their Apple IDs) or create a public link
  4. Invite testers to download your app via the TestFlight app
  5. Collect crash reports and feedback in real-time

Before you move on, make sure all in-app purchases are set to “Ready to Submit” in App Store Connect. If any are marked as “Missing Metadata,” you won’t be able to send the build for review. Purchases must also function correctly during TestFlight testing.
TestFlight helps you validate functionality, identify bugs, and improve UX before exposing the app to the public. All builds expire after 90 days—and builds must still pass a beta App Review before external testing.
Step 5: Upload your app with Xcode
When you’re ready:

  1. In Xcode, set the target to Generic iOS Device
  2. Go to Product → Archive
  3. Once built, open Organizer
  4. Click Distribute App → choose App Store Connect → Upload

Xcode will validate your build, check entitlements, assets, and configuration. If successful, the build will appear in App Store Connect under TestFlight and Builds (after processing).

If not—review the errors. Common issues include:

  • Missing icon sizes or assets
  • Incorrect signing certificate—use valid Distribution and Development certificates
  • Entitlement mismatch (e.g., Push but no provisioning profile for it)

Once your build shows up in App Store Connect, you can assign it to a version and prepare for submission.
Step 6: Configure metadata, screenshots, and features
Now link your uploaded build to the App Store listing and provide all required information. In App Store Connect, open your app record and go to the App Store tab → select your platform version.

Here’s what you’ll need:

  • Screenshots: Required for each device size (iPhone SE, iPhone 15 Pro Max, iPad, etc.). Use real or device-framed in-app screenshots or mockups that reflect actual UI
  • App description: Focus on user benefits, core features, and what makes your app different
  • Keywords: Choose high-volume keywords relevant to your category. This helps users discover your app in search
  • Privacy policy URL: Required if your app collects user data
  • Support and marketing URLs: Optional, but build credibility. Make sure the support email listed there is working and monitored.
  • App icon: Same as in the build, see above
You’ll also:

  • Set the app category (primary and optional secondary)
  • Define age rating
  • Configure in-app purchases, subscriptions, or Game Center (under the Features tab)
  • Fill out App Review Information—including contact name, email, phone, and review notes (e.g., test login credentials)

Don't forget to scrub every corner of your app for remnants of past projects—those forgotten test labels, old support links, or accidental references to other apps hiding in your metadata or policies.

Everything here must match what users will experience in the app. If you describe functionality that isn’t implemented, it’s a fast track to rejection.

Before moving on, do one last round of testing—thoroughly. This is your final chance to catch issues before Apple’s review.

Test every purchase, track every analytics event, and triple-check all features using a sandbox account. Small oversights here can mean big delays later. Do the work now, or do it after a rejection—your choice.
Step 7: Submit your app for review
After you've filled out all your app details and chosen which version to publish, just hit that Submit for Review button.

Before submission, Apple requires you to complete three declarations:

  1. Export compliance—confirm encryption usage
  2. Content rights—confirm you have rights to all content (text, visuals, APIs)
  3. Advertising identifier (IDFA)—declare whether your app uses IDFA, and if so, specify how you collect and use data using Apple’s checkbox system

If you're publishing a Kids app, describe your data collection and usage according to the Kids Category requirements—aggregated, anonymized, and minimal.

If approved, your app status changes to Waiting for Review. Most reviews take 24–48 hours. You’ll receive emails when the status updates.

Tip: if you’re coordinating your release with a marketing campaign or feature, use manual release or schedule the go-live time. You can also request expedited review if there’s a critical need (e.g., bug fix or media event).
Step 8: Track review status and version history
You can view your app’s progress in App Store Connect → Activity → App Store Versions.

Statuses include:

  • Waiting for Review
  • In Review
  • Pending Developer Release
  • Ready for Sale
  • Rejected

If rejected, check the resolution center for details. You’ll be able to resubmit or contact the reviewer directly.

Each app version is tracked in the Version History tab. You can view prior builds, notes, metadata, and release statuses. Use this to monitor progress, manage rollouts, or plan phased updates.
Common reasons for rejection when submitting an app to the App Store.
Even polished apps can fail Apple’s review. Here are the most frequent causes:

  • Broken functionality: features that crash or don’t work
  • Metadata mismatches: misleading descriptions or screenshots
  • Placeholder content: lorem ipsum, empty views, etc.
  • Privacy non-compliance: missing disclosures or permissions
  • Design violations: inconsistent UI, missing navigation patterns
  • Insufficient value: apps that act as thin wrappers around websites or offer little native functionality

Always reference App Store Review Guidelines before submission. If in doubt, test your app thoroughly and document edge cases in the reviewer notes.
After launch: managing versions and visibility
Publishing an app to the App Store is just the beginning. App Store Connect lets you:

  • Monitor downloads, installs, and in-app analytics
  • Respond to user reviews and track ratings
  • Set up new versions and increment build numbers
  • Control availability by country, price tiers, or release timing

Under the App Information and Pricing, and Availability tabs, you can edit your product’s distribution settings at any time.
For example:

  • To fix bugs: Upload a new build with a higher build number and submit it for review under the same version
  • To launch a new version: Create a new version (e.g., 1.1.0), link a new build, and repeat the submission process
  • To pause a release: Deactivate your app or remove it from sale in specific regions using the Availability menu
Wrapping up: the reality of App Store success
Getting approved by Apple is like making it onto a bookstore's shelves—you're in the game, but it doesn't mean anyone will notice your book among thousands of others. The brutal truth? The App Store is overflowing with great apps that nobody finds.

We've worked with amazing apps—technically perfect, beautifully designed, genuinely useful - that can't even hit 100 downloads. Getting approved in the app store isn't the end goal.

That's just when the real work begins. Your app shouldn't just exist in the store. It should actually get found and used by real people.

Let's make that happen. Contact us.