App Development · April 2026
How to Upload Apps to the App Store: Complete 2026 Guide
Publishing an iOS app can feel overwhelming the first time. Between certificates, provisioning profiles, and Apple's review guidelines, there are plenty of places to get stuck. This guide walks you through every step — from setting up your Apple Developer account to seeing your app live on the App Store.
Step 1: Enrol in the Apple Developer Program
Before you can submit anything to the App Store, you need an active Apple Developer Program membership. As of 2026, the annual fee is USD $99 for individuals and organisations. Head to developer.apple.com/programs and click "Enrol."
If you are enrolling as an organisation, you will need a D-U-N-S number — a unique nine-digit identifier issued by Dun & Bradstreet. Requesting one is free but can take up to two weeks, so plan ahead. Apple uses this to verify your business identity.
Once your enrolment is approved (usually within 48 hours for individuals), you gain access to App Store Connect, Xcode's signing tools, and all beta software.
Step 2: Generate Certificates and Provisioning Profiles
Apple uses a code-signing system to verify that every app comes from a known developer and has not been tampered with. You need two things: a distribution certificate and a provisioning profile.
Using Xcode Automatic Signing
The simplest approach is to let Xcode manage signing for you. Open your project in Xcode, navigate to the "Signing & Capabilities" tab, and check "Automatically manage signing." Select your team, and Xcode will create the required certificate and profile behind the scenes.
Manual Signing (CI/CD Pipelines)
If you use a CI/CD service like GitHub Actions, Bitrise, or Codemagic, you will need manual signing. Visit the Apple Developer portal, create an "Apple Distribution" certificate by uploading a Certificate Signing Request (CSR), then create a provisioning profile tied to your app's Bundle ID. Download both and configure your build pipeline with the .p12 file and provisioning profile.
At ULB Media, we set up automated signing pipelines for our clients so that every build is signed correctly without manual intervention. This eliminates the most common source of submission errors.
Step 3: Configure Your App in App Store Connect
App Store Connect is the web dashboard where you manage everything about your app listing. Sign in at appstoreconnect.apple.com and create a new app. You will need:
- Bundle ID — must match the one in your Xcode project (e.g., com.yourcompany.appname).
- App Name — the name that appears on the App Store (max 30 characters).
- Primary Language — the default locale for your listing.
- SKU — an internal reference string that is never shown publicly.
Fill in your app description, keywords, support URL, marketing URL, and privacy policy URL. Write a description that clearly explains what your app does and the problems it solves. The keyword field is limited to 100 characters, so choose wisely — Apple indexes your title separately, so avoid duplicating words.
Screenshots and App Previews
You need screenshots for every device size you support. At minimum, provide screenshots for the 6.7-inch display (iPhone 15 Pro Max family) and the 6.1-inch display. If you support iPad, you will need those sizes too. App preview videos are optional but strongly recommended — apps with video previews see higher conversion rates.
Step 4: Archive and Upload Your Build
With your signing and App Store Connect listing ready, it is time to create your build. In Xcode, select "Any iOS Device" as the build target and go to Product → Archive. This compiles your app into an archive suitable for distribution.
Once archiving completes, the Xcode Organizer window opens. Select your archive and click "Distribute App." Choose "App Store Connect" as the destination, then "Upload." Xcode validates your build against Apple's requirements and uploads the binary.
Alternatively, you can use xcodebuild and altool (or the newer notarytool) from the command line. This is essential for CI/CD workflows where you want every merged pull request to automatically upload a new build.
Step 5: Test with TestFlight
Once your build finishes processing in App Store Connect (usually 15–30 minutes), it becomes available in TestFlight. TestFlight allows you to distribute beta versions to up to 10,000 external testers.
Internal testers — members of your App Store Connect team — can test immediately. External testers require a brief Beta App Review from Apple, which usually takes under 24 hours.
Use TestFlight to catch bugs, gather feedback on user experience, and verify that your app works across different devices and iOS versions before submitting for full review.
Step 6: Submit for App Review
When you are confident your build is ready, go to App Store Connect, select your app, and under the version you want to release, choose the build you uploaded. Complete all required metadata, then click "Submit for Review."
Apple's review process typically takes 24–48 hours, though complex apps or first-time submissions may take longer. Common reasons for rejection include:
- Crashes or bugs — Apple testers will reject apps that crash during basic use.
- Incomplete metadata — missing privacy policy, broken links, or placeholder text.
- Guideline 4.3 (Spam) — apps that duplicate existing functionality without meaningful differentiation.
- Login issues — if your app requires login, provide a demo account in the review notes.
- Privacy violations — collecting data without proper disclosure in the App Privacy section.
Step 7: Release Your App
After approval, you have three release options: release immediately, release on a specific date, or release manually. If you chose "Manually release this version," you can press the release button whenever you are ready.
Your app typically appears on the App Store within a few hours of release. Congratulations — you are published.
Common Pitfalls and How to Avoid Them
Having helped dozens of clients ship iOS apps, the ULB Media team has seen every possible submission error. Here are the most frequent issues:
- Expired certificates — distribution certificates expire after one year. Set a calendar reminder.
- Wrong build configuration — uploading a debug build instead of a release build. Always archive with the Release scheme.
- Missing app icons — your asset catalogue must include every required icon size. Use a tool like App Icon Generator.
- Privacy nutrition labels — Apple requires you to accurately declare all data your app collects. Review third-party SDKs carefully.
Publishing Apps Built with React Native or Flutter
If your app is built with a cross-platform framework like React Native or Flutter, the upload process is identical once you have a native Xcode project. React Native projects include an ios/ directory with a standard Xcode workspace. Flutter generates one when you run flutter build ios.
The key difference is ensuring your framework's native dependencies are correctly linked and signed. Tools like fastlane can automate the entire build, sign, and upload pipeline for cross-platform apps. At ULB Media, we configure Fastlane for every mobile project to ensure repeatable, error-free releases.
Final Checklist Before Submitting
- Apple Developer membership is active and paid
- Bundle ID matches between Xcode and App Store Connect
- Distribution certificate and provisioning profile are valid
- App icons in every required size are included
- Screenshots for all required device sizes are uploaded
- Privacy policy URL is live and accessible
- App Privacy nutrition labels are filled in accurately
- TestFlight testing is complete with no critical bugs
- Demo login credentials are provided in review notes (if applicable)
Need help publishing your app?
ULB Media handles the entire App Store submission process — from signing certificates to review approval — so you can focus on building a great product.
Get in Touch