Submitting to the Mac App Store

The Mac App Store is the preferred way to deliver your application to your users. It makes it easy for them to find and purchase your application, and offers them the most streamlined installation experience. You can submit your application from within Xcode, or (if you need to) you can submit it using Application Loader.

You can add receipt validation code to your application to prevent unauthorized copies of your application from running. For more details, refer to Receipt Validation Programming Guide.



Before submitting your application, make sure that you have done the following:

Submit Your Application using Xcode

You can use Xcode to submit your application as follows:

  1. Archive your application.

    • Open your project in Xcode.

    • Select the Release build configuration.

    • Choose Build > Build and Archive.

  2. Test the installation process.

    • Open the Organizer window and select the desired archive.

    • Click Share, then select Save to Disk.

    • Test the resulting package as described in Test the Installation Process.

  3. In the Organizer window, select the desired archive, and click Submit. Then select your installer signing certificate (its name begins with “3rd Party Mac Developer Installer”) from the drop-down menu in the sheet to sign your archive for submission.

image: ../Art/organizer.jpg

Submit Your Application using Application Loader

Using Xcode to submit your application is recommended in most cases. However, submitting using Application Loader may be more appropriate to your organization’s structure or build process. If your application needs to enforce minimum configuration requirements, you must use this method.

You can use Application Loader to submit your application as follows:

  1. If you built your application with Xcode and specified your application signing certificate as described in Requirements, your application is already signed.

    Otherwise, use codesign to sign your application with your application signing certificate (its name begins with “3rd Party Mac Developer Application”).

  2. Archive your application using the productbuild command. The following listing shows a typical usage:

    productbuild \
        --component build/Release/ /Applications \
        --sign "3rd Party Mac Developer Installer: John Appleseed" \
        --product product_definition.plist Sample.pkg

    The productbuild command can build a variety of product types; it provides a number of options that are not appropriate for submissions to the Mac App Store. You should specify a single component, a signature, and (optionally) a product definition file. The option to install into the user’s home directory is not supported.

    For more details about productbuild, see its man page.

    Alternatively, use Xcode to archive your application by following the steps in Submit Your Application using Xcode, then click Share in the Organizer window and save the archive to a file.

  3. Test the installation process, as described in Test the Installation Process.

  4. Submit the package to the Mac App Store using Application Loader. The file name of the package must not have spaces in it, and the file extension must be pkg.

Test the Installation Process

Before you submit to the Mac App Store, you should test the installation process to verify that your application installs correctly. Use the installer command. For example:

sudo installer -store -pkg 
 -target /

If the installer finds an application bundle with the same bundle identifier as the one it is installing, it upgrades the existing application in place. This allows your users to install upgrades even if they have moved your application. If you have a copy of your application installed (for example, in your build products directory), you may want to remove it so that your application gets installed in /Applications. Other options include archiving the existing version in a ZIP file, or moving it to another volume and unmounting that volume.

Do not test the installation process by opening the package with the Installer application. Only the installer command verifies that your application will be installed correctly when it is purchased from the Mac App Store.

File-System Usage Requirements for the Mac App Store

To promote a more consistent user experience, applications submitted to the Mac App Store must follow certain rules about where they write files. Users can be confused when applications cause unexpected side effects on the file system (for example, storing databases in the user’s Documents folder, storing files in the user’s Library folder that are not recognizably associated with your application, storing user data in the user’s Library folder, and so on).

Your application must adhere to the following requirements:

Helper Application Requirements for the Mac App Store

Applications can contain a helper application as a full application bundle, stored inside the main application bundle. Use the Service Management framework to enable the helper application as a login item, as described in Adding Login Items Using the Service Management Framework.

Categorize Your Application

You must define your application’s category by adding the LSApplicationCategoryType key at the root level of your Info.plist file. The value of this key is exactly one of the following UTIs:




Developer Tools





Graphics & Design

Healthcare & Fitness








Social Networking






For games, you can use one of the UTIs that are specific to games instead:



Action Games

Adventure Games

Arcade Games

Board Games

Card Games

Casino Games

Dice Games

Educational Games

Family Games

Kids Games

Music Games

Puzzle Games

Racing Games

Role Playing Games

Simulation Games

Sports Games

Strategy Games

Trivia Games

Word Games