Apple App Store submission process

Submitting Your App to the Store

The next distribution step is to submit your app to the App Store or Mac App Store. Read  Prepare for Uploading to ensure that you perform all the steps to streamline the app review process. It’s recommended that you submit the last archive you distribute for testing. The last build you test should be product quality and pass iTunes Connect validation tests. Depending on the testing method you choose, follow the steps in this chapter to submit your app.

If you use TestFlight to distribute your iOS app to testers (described in  Beta Testing iOS Apps), submit the last build directly to App Review using iTunes Connect, as described in Submitting the App.

For iOS apps you distribute for testing using ad hoc provisioning (described in  Distributing Your App Using Ad Hoc Provisioning), and Mac apps you distribute for testing using the team provisioning profile (described in Beta Testing Mac Apps), follow these steps:

  1. If necessary, validate the last archive you distributed for testing, described in Running iTunes Connect Validation Tests.
  2. For Mac apps, test the Mac Installer Package, as described in Testing the Mac Installer Package.
  3. Upload the archive, as described in Uploading Your App Using Xcode.
  4. Use iTunes Connect to submit your app to App Review, as described in Submitting the App.

If you want to create an archive just before uploading your app (for example, if you changed the build number), follow the steps in  Creating an Archive before you validate the archive.

The first time you upload your app to iTunes Connect, Xcode creates the necessary distribution certificate and store provisioning profile for you. 

App ID (a set of apps created by your team), and others are set in the Xcode project. When you submit your app to the store, Xcode signs the app bundle with the distribution certificate referenced in the store provisioning profile.
../Art/store_provisioning_2x.png
iOS Human Interface Guidelines and  OS X Human Interface Guidelines.
  • Review the store guidelines in App Store Review Guidelines for iOS Apps and App Store Review Guidelines for Mac Apps.
  • For more information on the app review process, go to  App Review.
    Creating an iTunes Connect Record for an App. Then enter all the required information, described in  Viewing and Changing Your App’s Metadata.
    Configuring Your Xcode Project for Distribution.
  • The bundle ID in the Xcode project, described in Setting the Bundle ID, should match the bundle ID you enter in iTunes Connect.
  • Use the same App ID to code sign your archive as you used for development and testing.

    If you don’t use any app services that require an explicit App ID, you can use the Xcode wildcard App ID. If you want to create a new App ID, read  Registering App IDs. However, if you change your App ID, retest your app using the new App ID before uploading it to iTunes Connect.

  • Review the version number and build number settings, described in Setting the Version Number and Build String. iTunes Connect extracts its prerelease version number and build number from the binary.
  • To ensure that your app enables the key app services you want to use, review your App ID settings. Read Adding Capabilities.
  • For Mac apps, review these additional tasks:
    • Select Mac App Store as the signing method during development, as described in Choosing a Signing Identity (Mac Only)
    • All apps need to have App Sandbox enabled, as described in Configuring App Sandbox (Mac Only).
    • All apps and their installer packages need to be signed to submit them to the Mac App Store. If you use a helper app, read Daemons and Services Programming Guide to learn how to configure the helper app. 
    Viewing Binary Details. Later, use iTunes Connect to submit your app to App Review, as described in  Submitting the App.

    If you prefer to upload your binary using Application Loader, read  Using Application Loader for how to use Application Loader for this step.

    Viewing the Status of Your App.

    Still need help? Contact Us Contact Us