1Apple App Store Submission Process
▶
Publishing an application to the Apple App Store is one of the most structured and rigorous release processes in consumer software distribution. Unlike many other platforms, Apple enforces a multi-layered submission workflow that spans account enrollment, cryptographic code signing, metadata configuration, visual asset preparation, and a human-assisted automated review. Understanding each stage in depth — and understanding why each requirement exists — is essential for any developer or team planning to distribute iOS, iPadOS, macOS, tvOS, or watchOS applications through Apple's marketplace. A single misconfigured provisioning profile, a missing privacy policy URL, or a screenshot taken from the wrong device simulator can halt a release entirely. What follows is a thorough walkthrough of every major phase of the submission process.
Apple Developer Program Enrollment
Before a single line of code can reach a user through the App Store, the developer or organization responsible for the app must be a paid member of the Apple Developer Program. Enrollment is completed at developer.apple.com and carries an annual fee of $99 USD (prices may vary by currency and region, but the USD figure is the standard reference). This fee is not a one-time cost — it recurs annually, and if membership lapses, any apps already on the App Store remain available to existing users but cannot receive updates until membership is renewed.
Enrollment requires verifiable legal identity information. Individual developers must provide their legal name and agree to Apple's developer agreements; the identity is validated against government-recognized identity documents and, in some regions, through Apple's integration with Dun & Bradstreet or similar identity-verification services. Organizations enrolling as a company or corporation must additionally provide a D-U-N-S number, which is a unique nine-digit identifier issued by Dun & Bradstreet. Apple uses this to confirm the legal existence of the organization. The enrollment process for organizations can take several days to several weeks if the D-U-N-S number needs to be created or updated.
It is important to understand who "owns" the Developer Program account. The person who completes enrollment becomes the Account Holder (also called the Team Agent). This role has the highest level of authority within the team: only the Account Holder can accept new legal agreements from Apple (which are required after major WWDC announcements), manage certificates, and initiate certain financial operations. Additional team members can be added in App Store Connect under roles such as Admin, Developer, Marketing, or Sales, each with progressively restricted permissions.
A separate tier exists called the Apple Developer Enterprise Program, which also carries an annual fee (currently $299 USD). This program is intended exclusively for organizations that need to distribute proprietary, internal-use applications directly to their own employees without going through the public App Store. Apps signed with an Enterprise distribution certificate cannot legally be distributed to anyone outside the organization. Apple has enforced this boundary aggressively — in 2019, it temporarily revoked enterprise certificates from companies that had distributed apps to the general public through enterprise signing, effectively disabling those apps for all users. The Enterprise Program is not a route to bypass App Store review for public distribution.
Membership in the standard Apple Developer Program provides access to several critical resources beyond App Store distribution: access to beta versions of iOS, macOS, and other operating systems before public release; access to App Store Connect, the web-based portal for managing app listings and sales; access to Xcode's full suite of distribution and profiling tools; and the ability to generate the distribution certificates and provisioning profiles covered in the next section.
Provisioning Profiles and Code Signing
Code signing is the cryptographic mechanism Apple uses to guarantee two things: first, that an application was built and authorized by a known, verified developer; and second, that the application has not been tampered with between the time it was built and the time it runs on a device. Understanding the components involved requires understanding how public-key cryptography is applied here.
A distribution certificate is an X.509 digital certificate that binds a developer's identity (as validated by Apple) to a public/private key pair. The private key lives on the developer's Mac — specifically in the macOS Keychain — and must be kept secure. If the private key is lost, the certificate cannot be used for signing on another machine without exporting it. If it is compromised, a bad actor could potentially sign malicious software as if it came from your organization. The certificate is created through the Apple Developer portal under Certificates, Identifiers & Profiles. During creation, Xcode or Keychain Access generates a Certificate Signing Request (CSR), which is a file containing your public key and identity information. Apple signs this CSR with its own certificate authority, producing the distribution certificate that is trusted by iOS and macOS devices.
There are two primary types of distribution certificates relevant to App Store submission:
- Apple Distribution certificate — the modern, unified certificate used for submitting to the App Store across all Apple platforms. This replaced the older "iOS Distribution" and "Mac App Distribution" certificate types for most workflows.
- Mac Installer Distribution certificate — used specifically for signing the installer package (.pkg) for macOS apps submitted through the Mac App Store, in addition to the app bundle itself.
A provisioning profile is a file that acts as a trust bridge between a specific app, a specific certificate, and Apple's authorization to run or distribute that app. It contains: the App ID (bundle identifier), the distribution certificate(s) authorized to sign the app, the entitlements the app is permitted to use (such as Push Notifications, iCloud, or HealthKit), and, for development profiles, a list of device UDIDs that may run the app. For App Store distribution profiles, the device list is replaced by Apple's own authorization for store distribution — meaning the profile does not need to enumerate specific devices because the App Store itself handles delivery.
It is a critical distinction that apps submitted to the App Store must be signed with a distribution provisioning profile, not a development one. A development profile allows running apps on a small list of registered test devices via Xcode; a distribution profile authorizes delivery to any device through the App Store. Submitting an archive signed with the wrong profile type will result in a validation error before the build even reaches Apple's review queue.
In modern Xcode (version 8 and later), Automatic Signing can manage certificates and profiles on behalf of the developer, creating and refreshing them as needed. While this is convenient for development, many teams prefer Manual Signing for production builds to ensure precise control over which certificate and profile are used — particularly important in CI/CD pipelines where multiple engineers or build servers share an account. Tools like Fastlane Match have emerged specifically to synchronize certificates and profiles across development teams by storing them in an encrypted Git repository.
When Xcode builds and archives an application for distribution, it embeds the provisioning profile inside the .ipa bundle (the iOS App Archive) and cryptographically signs the binary and all embedded frameworks with the private key. When a device installs the app, iOS verifies the signature against Apple's certificate authority chain, checks that the provisioning profile is valid and unexpired, and confirms that the entitlements in the binary match those granted by the profile. Any mismatch causes installation to fail.
App Store Connect Configuration
App Store Connect (appstoreconnect.apple.com) is the web portal where developers manage every aspect of their App Store presence: creating app records, uploading builds, configuring metadata, setting pricing, managing testers via TestFlight, and viewing sales and analytics data. Before a build can be uploaded, the app record must be properly initialized.
Every app requires a globally unique bundle identifier (bundle ID), registered in the Apple Developer portal under Identifiers. The bundle ID follows reverse-DNS notation — for example, com.yourcompany.yourapp. Once registered and associated with an App Store Connect record, the bundle ID cannot be changed for that app. It also cannot be reused by another app, even if the original app is removed from the store. Choosing a bundle ID is therefore a permanent decision, and teams should follow a consistent naming convention that reflects their organization's domain.
The App Store Connect record for a new app requires the following to be set before submission:
- App Name — the name displayed on the App Store listing, up to 30 characters. This is distinct from the app's display name on the device home screen, though they are typically kept consistent. Name uniqueness is enforced — Apple will reject a name that is identical or confusingly similar to an existing app.
- Subtitle — an optional secondary label up to 30 characters, displayed beneath the app name in search results. Effective subtitles convey the app's core value proposition concisely.
- Description — up to 4,000 characters explaining what the app does. Only the first few lines are visible without tapping "more," so the opening sentences are especially important for conversion. Unlike the name and subtitle, the description can be updated at any time without submitting a new app version.
- Keywords — up to 100 characters total, comma-separated, used by Apple's search algorithm. Keywords are not publicly visible but significantly affect discoverability. They are shared across all localizations and cannot exceed the character limit across the entire field.
- Support URL and Marketing URL — web addresses that appear on the product page. The support URL is required; the marketing URL is optional.
- Privacy Policy URL — an absolute URL to the app's privacy policy, required for all apps. Discussed further in the review guidelines section.
Pricing and availability are configured separately within App Store Connect. Developers can choose a price tier (from Free to various paid tiers, with Apple taking a 30% commission on paid apps and in-app purchases for most developers, or 15% for those qualifying under the Small Business Program), set introductory pricing for subscriptions, and restrict or enable distribution to specific countries and regions. Apple manages currency conversion automatically based on the selected tier, though developers can also set custom prices per storefront in newer versions of App Store Connect.
Once the app record is configured and a build has been prepared, the build is uploaded to App Store Connect. There are two primary methods:
- Xcode's Archive and Distribute workflow — in Xcode, select Product → Archive, which compiles the app in release configuration and creates an
.xcarchivebundle. From the Organizer window, the developer selects Distribute App → App Store Connect → Upload, and Xcode handles validation and upload automatically. This is the most common method for individual developers and small teams. - Transporter — a standalone macOS application (available free on the Mac App Store) that accepts a pre-exported
.ipafile and uploads it to App Store Connect. This is commonly used in CI/CD pipelines (e.g., with Jenkins, GitHub Actions, or Fastlane) where the build and export steps are automated and the Xcode GUI is not interactive.
After upload, the build undergoes Apple's automated processing pipeline, which performs static analysis, symbol processing, and BitCode compilation (for older platforms). Processing typically takes 5–30 minutes, after which the build becomes available to attach to an App Store version or distribute via TestFlight for beta testing.
App Store Asset Requirements
Visual assets are a significant part of the App Store submission and directly affect both review approval and user conversion rates. Apple has precise technical requirements for each asset type, and submitting incorrectly sized or formatted assets will block submission.
The app icon for the App Store listing must be provided at exactly 1024×1024 pixels, in PNG format, with no transparency (the alpha channel must be absent or fully opaque). This single image is used by Apple to generate all display sizes programmatically. The icon must not contain rounded corners — Apple applies the rounded rectangle mask itself on the device and in the App Store. Icons that include a pre-rendered rounded corner treatment will appear to have double-rounded or misaligned corners. As of Xcode 14 and later, developers can use a single 1024×1024 source in an AppIcon asset catalog and let Xcode generate all required sizes, which greatly simplifies the process.
Screenshots are among the most conversion-critical assets on an App Store listing. Apple requires screenshots for specific device size classes, and the minimum required sizes as of the current guidelines are:
| Device Category | Display Size | Required Resolution (Portrait) | Required |
|---|---|---|---|
| iPhone (Super Retina XDR Max) | 6.5-inch | 1284 × 2778 px | Yes (required for iPhone apps) |
| iPhone (Retina HD 5.5-inch) | 5.5-inch | 1242 × 2208 px | Yes (required for iPhone apps) |
| iPad Pro (6th gen, 12.9-inch) | 12.9-inch | 2048 × 2732 px | Yes (required for iPad apps) |
| iPhone (6.7-inch, iPhone 14 Plus / 15 Plus) | 6.7-inch | 1290 × 2796 px | Optional (replaces 6.5-inch if provided) |
| Apple Watch | Various | Varies by Series | Required for watchOS-only apps |
Up to ten screenshots can be provided per device size. Screenshots can be in portrait or landscape orientation, and for apps that support both, it is advisable to provide both orientations to demonstrate the full UI. Critically, Apple's guidelines require that all screenshots and previews accurately reflect the current version of the app's actual UI. Using mockup frames (device bezels placed around screenshots) is permitted but the content shown must be the real app interface, not a design prototype or placeholder. Submitting screenshots that misrepresent the app's functionality is grounds for rejection and, if done deliberately, can result in removal from the App Store.
App previews are short autoplay videos (up to three per device size) that appear at the beginning of the screenshot gallery. They must be between 15 and 30 seconds in duration, recorded directly from the device or a simulator running the actual app. Screen recordings captured with Xcode's SimulatorRecorder or a physical device connected to QuickTime are both acceptable sources. Apple prohibits app previews that contain content not present in the app, use actors or voiceovers to demo features, or show the app performing actions that are not available to the user. Video files must be in the H.264 or HEVC codec, in an MP4 or MOV container, with no audio exceeding the volume normalization limit Apple specifies in the asset upload tool.
Localized screenshots and previews can be provided per language/region storefront, allowing developers to show region-appropriate content (translated UI, locally relevant imagery) on each country's App Store. If localized assets are not provided for a particular language, Apple falls back to the default language assets.
App Review Guidelines and Common Rejections
Apple's App Review Guidelines (developer.apple.com/app-store/review/guidelines) are a publicly available document covering Safety, Performance, Business, Design, and Legal requirements. Every app submitted to the App Store is evaluated against these guidelines by a combination of automated tooling and human reviewers. Review typically takes 24–48 hours for initial submissions, though expedited reviews can be requested for critical bug fixes (such as crashes affecting a large user base or time-sensitive content like live event apps) through a formal request process in App Store Connect.
The most fundamental performance requirement is that the app must be free of crashes and significant bugs at the time of submission. Apple reviewers test the app on actual devices running the current publicly available operating system. If the app crashes on launch, hangs during basic navigation, or exhibits broken functionality in the primary use case, it will be rejected with a reference to Guideline 2.1 (App Completeness). This seems obvious, but it is a surprisingly common rejection vector for teams that test primarily on simulators or on specific device configurations that do not match the reviewer's test environment. Testing on a range of physical devices before submission — including older hardware with less RAM — is essential.
A privacy policy is mandatory for all apps submitted to the App Store, regardless of whether the app collects any personal data. The privacy policy must be accessible from within the app (typically via a link in a Settings or About screen) and the URL must be entered in App Store Connect. The policy itself must accurately describe what data is collected, how it is used, whether it is shared with third parties, and how users can request deletion of their data (particularly relevant for apps distributed in the EU under GDPR or in California under CCPA). Apple's own Privacy Nutrition Labels — the data collection disclosures on every App Store product page — must also be completed in App Store Connect and must match what is described in the privacy policy and what the app actually does.
The prohibition on private APIs and undocumented system features (Guideline 2.5.1) is enforced through both automated static analysis and manual review. Private APIs are Objective-C or Swift symbols that are present in Apple's frameworks but not documented in the public SDK. Apple's automated review pipeline scans all submitted binaries for known private API selectors. Even if the private API is called indirectly through a third-party SDK, Apple holds the developer responsible. The practical implication is that all third-party libraries and SDKs must be vetted before inclusion in a release build — an analytics or advertising SDK silently calling a private API can cause a rejection that appears to come out of nowhere. Apple's policy exists because private APIs are subject to change or removal in any OS update, which can cause apps to break silently in production.
Guideline 4.0 (Design) is broader and more subjective than the technical guidelines. It requires that apps meet minimum standards of quality and provide meaningful functionality beyond a simple web view or static content display. A "shell app" that wraps a website without adding native functionality or value will be rejected under 4.0. Apps that are incomplete, that closely copy other apps without adding original value, or that have a user interface that is confusing, broken, or significantly below platform norms are also subject to rejection under the Design guidelines. Apple's Human Interface Guidelines (HIG) serve as the design reference — while developers are not required to follow every HIG recommendation, egregious deviations (such as navigation patterns that conflict with expected iOS behavior) can trigger a 4.0 rejection.
Other frequently encountered rejection reasons include:
- Missing or incomplete demo account credentials — if the app requires login to access functionality, a fully functional demo account with credentials must be provided to the reviewer in the App Review Information field of App Store Connect. Apps where the reviewer cannot access core functionality due to missing credentials are rejected.
- Guideline 3.1.1 (In-App Purchase) — any digital goods or services consumed within the app must be sold through Apple's In-App Purchase system, which routes payment through Apple and provides Apple its commission. Offering digital purchases through a third-party payment processor (or directing users to a website to complete a purchase) within the app is prohibited. Physical goods and services rendered outside the app (e.g., a ride-sharing payment, a restaurant delivery) are exempt.
- Guideline 5.1.1 (Data Collection and Storage) — apps must not collect more data than necessary for the app's stated functionality, and must obtain appropriate user consent (using Apple's App Tracking Transparency framework for cross-app tracking) before doing so.
- Incomplete or inaccurate metadata — the app's description, screenshots, or categories that misrepresent the app's actual functionality can trigger a 4.3 (Spam) or 2.3 (Accurate Metadata) rejection.
When an app is rejected, Apple sends a message through the Resolution Center, a messaging interface within App Store Connect. The message identifies the relevant guideline(s) and describes the specific behavior that triggered the rejection. Developers can respond in two ways: they can reply with a message explaining why they believe the app is compliant (an appeal), or they can acknowledge the feedback, fix the issue in the app or metadata, and resubmit. Resubmission restarts the review queue. For persistent disagreements, developers may submit a formal appeal to the App Review Board, a separate team at Apple that reviews contested decisions — though this process is slower and the outcome is not guaranteed. Throughout this process, clear and professional communication with the reviewer (possible through the Resolution Center) often resolves misunderstandings faster than resubmitting immediately.
2Videos on This Topic
▶
Publishing an app to the Apple App Store is less a single button press than a sequence of administrative, technical, and design steps. Before any code ships, a developer (or organization) must enroll in the Apple Developer Program, generate certificates and provisioning profiles so that builds are cryptographically signed, create an app record in App Store Connect, upload a build through Xcode, and supply metadata and marketing assets that meet Apple's specifications. Only then does the app enter App Review, where human reviewers check it against the App Store Review Guidelines.
This matters in a human-computer interfaces course because Apple's requirements are, in large part, interface requirements. Screenshot dimensions, app icons, privacy disclosures, age ratings, and accessibility information are all part of how users encounter and judge your product before they ever launch it. Many common rejections — broken links, placeholder content, misleading screenshots, missing privacy details, poor usability on certain devices — are failures of interface preparation rather than failures of engineering.
As you watch the videos below, pay attention to the order of operations: what has to exist in App Store Connect before a build can be uploaded, what Xcode handles automatically versus what you must configure, and where beta testing (TestFlight) fits relative to final review submission. Note also every place a video mentions an asset, a description field, or a compliance question, and start a checklist you can later apply to your own interface project.
3Video 1: Release an iOS app with Flutter in 7 steps
▶
Flutter · 9:52 · 243,941 views · 3y ago · captions — Watch on YouTube
About this video
A step-by-step walkthrough from the official Flutter channel covering what it takes to move a finished app to the iOS App Store. Based on its title and description, it breaks the process into roughly seven stages, which typically include registering a bundle identifier, setting up signing in Xcode, creating the app listing in App Store Connect, building a release archive, uploading it, and submitting for review. The Flutter framing is incidental — the App Store side of the workflow is the same regardless of how the app was built.
Why this video
It gives students a compact, end-to-end mental model of the submission pipeline from a reputable first-party channel, touching enrollment, code signing, App Store Connect setup, and review submission in a single short video.
4Video 2: TestFlight & Xcode: Upload, Distribute, and Beta Test Your iOS App In Under 10 Minutes! (2025)
▶
Noah Does Coding · 7:57 · 60,638 views · 1y ago · captions — Watch on YouTube
About this video
A recent, fast-paced tutorial on distributing an iOS build through TestFlight using Xcode and App Store Connect. It is likely to demonstrate archiving a build, uploading it, handling export compliance and build processing, and then inviting internal and external testers to install the beta. This is the stage most teams use to validate an interface with real users before committing to public release.
Why this video
TestFlight is the practical bridge between a finished prototype and a store submission, and this 2025 walkthrough shows the exact App Store Connect screens students will encounter, reinforcing the upload and configuration subtopics.
5Video 3: WWDC23: What’s new in App Store Connect | Apple
▶
Apple Developer · 13:02 · 3,030 views · 2y ago · captions — Watch on YouTube
About this video
An official Apple Developer session from WWDC23 surveying updates to App Store Connect, the web and mobile toolset used to manage app records, builds, metadata, pricing, testers, and submissions. Expect coverage of how apps and their store listings are configured and submitted, along with newer capabilities in the submission and management workflow.
Why this video
It comes directly from Apple, so the terminology and policies are authoritative, and it gives students a tour of the App Store Connect configuration environment that the other two videos use more briefly.
6How These Videos Support the Learning Outcomes
▶
Together these videos trace the full Apple submission pathway that MO1 asks you to summarize: developer account and signing setup, App Store Connect configuration, build upload, beta distribution, and final review. The Flutter release walkthrough and the Apple Developer session surface the specific listing fields, compliance questions, and guideline checkpoints you will use in MO2 to judge whether your own interface project is publication-ready. The App Store Connect material in particular highlights the metadata, screenshots, and descriptive information required at submission, giving you a concrete model for assembling the publication assets called for in MO3 — though you should still consult Apple's current Review Guidelines and asset specifications directly, since exact requirements change between releases.
7About These Videos
▶
These videos were chosen from YouTube on October 3, 2026. Each has captions; the player turns them on. Videos on YouTube can be changed or removed — if one no longer plays, tell your instructor. If a player does not appear, use its Watch on YouTube link.