This documentation relates to previous versions of Titanium.

To see the latest documentation, visit

This space has been migrated to and will be removed from the Appcelerator wiki on August 9th, 2018

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Table of Contents


In this section, you will learn about Apples's App Store program requirements and the steps you must take to publish an app to the App Store.


Publishing to the Apple App Store involves a few, somewhat involved steps. Fortunately, you've done two of these steps already if you've deployed your app to a device for testing (you have tested your app on a device, right?!). The steps are:

  1. Register with the iOS Developer Center
  2. Create an App ID in the iOS Provisioning Portal
  3. Create and install the distribution certificate
  4. Create and install a distribution provisioning profile
  5. Build your app, embedding the distribution provisioning profile
  6. Upload the app to iTunes Connect and kick-off the Apple review process

Registering and creating the App ID

By now, you should have registered for the iOS developer program. And you should have tested your app on a device, which means you've created an App ID on the iOS Provisioning Portal. If you plan to sell your app, rather than distribute it for free, you'll need to register on the iTunes Connect site and supply legal and banking information to Apple. They must verify your legal status and banking info. That process can take as much as a week or more.

An App ID is a unique identifier for your app. It is composed of two parts: the Bundle Seed ID and the Bundle Identifier. The Bundle Seed ID is a 10-character hexadecimal string generated by the Provisioning Portal. It is unique to you and your developer account. The Bundle Identifier is a name you enter.

The Bundle Identifier can be explicit, meaning you enter a name on the Provisioning Portal and enter that exact same identifier as the App ID in Titanium Studio. You can also create a wildcard Bundle Identifier. Wildcard Bundle IDs are great for quick development – you don't have to create a new ID for each and every app you test. However, you cannot use some iOS features with a wildcard ID. You must create an explicit Bundle ID if you plan to use push notifications, iAd, or Game Center features.

See the section on deploying your iOS app for step-by-step instructions on creating an App ID.

Create and install the distribution certificate

The distribution certificate attests to the identity of the entity publishing the app. According to Apple: "Only Team Agents are authorized to prepare and submit applications for distribution." The Team Agent is the person at your organization who oversees development and final distribution of your app. While each developer on your team could have their own developer certificate, you or your company will have a single distribution certificate. This arrangement enables you to add or remove people from your development team, while not giving those folks the means to publish your final app. That will be controlled by you.

The Team Agent will be the user account associated with creation and first-logon to your provisioning portal account.

To create a distribution certificate:

  1. On the team agent's computer, while logged in as the person with the authority to publish the app, open Keychain Access.
  2. Choose Certificate Assistant, Request a Certificate from a Certificate Authority.
  3. Follow the program's prompts to create and save a Certificate Signing Request (CSR) file.
  4. Log onto the iOS Provisioning Portal under your Team Agent account.
  5. Click Certificates and then click the Distribution tab.
  6. Click Add Certificate and upload your CSR file.
  7. You'll be returned to the Certificates page with the status listed as Pending. Wait a moment then refresh the page in your browser.
  8. Even though you're logged in as the Team Agent, you'll need to approve your certificate. Click Approve.
  9. Download the development certificate (.cer) file to your computer.
  10. Double-click the file to install it into your keychain.

Create and install the distribution provisioning profile

As with deploying an app for testing, you'll need to create a provisioning profile file. The distribution provisioning profile gathers together your distribution certificate and App ID.

  1. Log onto the iOS Provisioning Portal as the Team Agent.
  2. Click Provisioning and click the Distribution tab.
  3. Click New Profile.
  4. Select the distribution method (see below for the distinction between your options).
  5. Enter a name for your provisioning profile. You should use a word like "distribution" in the name so that it's clear later that this profile is for final distribution.
  6. Select the App ID from the drop-down list.
  7. Click Submit.
  8. You'll be returned to the Provisioning page with the status listed as Pending. Wait a moment then refresh the page in your browser. You should get a Download link at that point.
  9. Download the provisioning profile (.mobileprovision) file to your computer. You'll use it when building your app.

You have two options to install the provisioning profile file onto your development computer. You can drag the file and drop it on the Xcode icon. Or, you can install it from Studio by following the steps in the following section. Either way, installing the provisioning profile is a one-time operation (on each computer, until it expires).

Build your app, embedding the profile within the app's bundle

Once you're done with the preceding steps, you'll use Titanium Studio to build your app for final distribution. From the Deploy menu, choose Distribute - App Store (see the screenshot below). If you have not installed the provisioning profile yet, you will see the dialog box on the left. Click the Upload link, locate your .mobileprovision file, and click Open to upload that profile to Xcode.


Wiki Markup
<br clear="all"/>

You'll also need to select the SDK version, choose your distribution certificate, and specify a location for the generated file. That location is used only temporarily. The final signed IPA file is installed into the Archives tab of the Organizer window in Xcode.

If you get errors, most likely source of trouble is that the app ID you entered in the tiapp.xml file doesn't match your distribution certificate and your provisioning file. Check each carefully to be sure that you're selecting the right requirements.

Creating the App ID on iTunes Connect

The iTunes Connect site is your app distribution management portal. You can get to iTunes Connect from the iOS Developer Center site. If you haven't done so yet, make sure to set up your iTunes Connect profile and supply the legal and banking information required by Apple. They verify all the documents you supply, a process that can take more than a week in some cases. You will not be able to publish your app until that process is complete.

From the iTunes Connect site, click Manage Applications and then click Add New App. You'll need to supply:

  • Your app's name (by which it will be listed in the App Store).
  • The Bundle ID, which you created in the Provisioning Portal.
  • The Bundle ID Suffix, which you entered in the tiapp.xml file as the name portion of the app ID.

Through a series of pages, you'll then define the following information about your app:

  • The date on which it should be available (defaults to the current date).
  • The price tier. You don't set a specific price, but instead set a tier. Each tier specifies a selling price in a selection of countries around the world. Optionally, you select specific locales in which your app will be sold.
  • App metadata:
    • Version Number
    • Description (4000 characters max.)
    • Primary Category
    • Keywords (100 characters max.)
    • Copyright
    • Contact Email Address
    • Support URL
  • Rating info – you must specify the frequency of ten categories of app characteristics by which Apple judges the age-appropriateness of your app
  • One (1) high resolution app icon – 1024x1024, 32 bit PNG or JPEG
  • Minimum of one (1) iPhone/iPod screenshot of your app, if it's targeted at that platform:
    • .jpeg, .jpg, .tif, .tiff, or .png files
    • 640x1136, 640x1096, 640x960, 640x920, 1136x640, 1136x600, 960x600 or 960x640 pixels
    • At least 72 DPI, and in the RGB color space
  • Minimum of one (1) iPad screenshot, if it's targeted at that platform:
    • .jpeg, .jpg, .tif, .tiff, or .png files
    • 1536x2008, 1536x2048, 2048x1496 or 2048x1536 pixels
    • At least 72 DPI, and in the RGB color space

As a final step, make sure to click the Ready to Upload Binary button. You should see the status of your app change to Waiting for Upload.

Uploading your app to iTunes Connect

If you built your app with Titanium Studio, it should be stored in the Archives tab of the Xcode Organizer. Open that window now and select your app. Click Verify. You'll be prompted for your iTunes Connect user name and password. At this point, Xcode will check for an app definition on iTunes Connect and make sure it matches the app you've created. Both sides of that app will need matching names, bundle IDs, and so forth.

Assuming you've passed the verification step, click the Submit button. Again, you'll be prompted for your iTunes Connect credentials (unless you specified to save them). Xcode will make sure your iTunes Connect app is in the Waiting for Upload state and if so, it will upload your app. This switches your app to the Waiting for Review state. This is the point where your app is submitted to Apple for their review and final approval.

App Store requirements

Apple publishes many guidelines that describe what they look for when deciding to approve an app. We encourage you to read their guidelines carefully. A few of the requirements include:

  • Apps must be useful, well-designed, and run without errors
  • Apps cannot download and execute code
  • You must own all copyrights and trademarks used within the app and its promotional resources
  • Apps cannot contain hidden features or use non-public APIs



In this section, you learned how to publish your iOS app. You learned how to generate distribution certificate and provisioning required to sign your app. You saw how to build and sign your distribution-ready IPA file. You learned how to create an app ID on iTunes Connect and upload your app for Apple's review. And finally, you examined the App Store and Apple's requirements for acceptance.