Publish App - Submit your new iOS app with Xcode

Prerequisites

Selling iOS apps on Apple’s App Store or offering them for free first and foremost requires an Apple Developer Account. This account currently costs $99 per year (Spring 2019) and also allows you to download all tools required to create and submit iOS apps as well as using the developer forums and reading the extensive developer documentation on developer.apple.com.

appdoo currently requires the Apple Xcode development environment to be installed on your Mac in order to submit apps to the Store. This also allows you to directly install your app to any compatible Apple mobile device you may own.

The following steps apply only if you haven’t signed up to the Apple Developer Program yet:

  1. Create a new Apple ID on appleid.apple.com, if you don’t have one already or if you wish to use a separate one for app development and distribution purposes. You also need to configure a means of payment for this Apple ID which can be used by Apple to charge the annual fees of the developer program (this does not necessarily have to be done right away).
  2. Visit the Apple Developer Portal on developer.apple.com/account in your preferred web browser and log in with your Apple ID.
  3. Sign up for the Developer Program and create the necessary Certificates and Profiles for iOS apps.

These steps are only necessary if you don’t already have Xcode installed and configured on your Mac:

  1. Download and install the Xcode development environment from the Mac App Store.
  2. Launch Xcode.
  3. Open the Xcode preferences window and click on the “Accounts” tab.
  4. With the “+” button in the lower left corner you can add your Apple Developer credentials.

Apple Xcode - Preferences - Accounts

Prepare App Submission

These steps have to be performed only once per app:

  1. Visit developer.apple.com and create an App ID (if not already done so).
  2. Visit appstoreconnect.apple.com in your preferred web browser.
  3. Enter the “My Apps” section.
  4. Click on the “+” button in the upper left corner to create a new iOS app with the App ID you’ve just created. Please note that the “SKU” has to be unique. This identifier is only used internally by the App Store to identify this app, but is not shown or published anywhere. You won’t be able to change this identifier later on.
  5. Fill in all the other necessary information.

The following steps have to be performed every time you want to publish a new version (update) of your app:

  1. Visit appstoreconnect.apple.com in your preferred web browser.
  2. Enter the “My Apps” section and select your app.
  3. Click on the entry called “+ Version” at the end of the the left column to create a new version for this app. Please note that this button will be inactive if there already exists a new and unpublished app version.
  4. Fill in all the necessary information about this new version. Please note, that the version number you enter here has to match the one of the app you will be submitting later. But you can change it any time until you finally decide th submit it to Apple.
  5. At the bottom of the screen you can select whether you want this version be released automatically or not. If you decide to release it manually, you have to come back here once you’ve been noticed about the (hopefully successful) review of your app.

Export & App Submission

After creating an app with appdoo, you have to perform these steps to submit your app to the store:

  1. Open your appdoo project.
  2. Export it to create an Xcode project and open it with Xcode. Please note: this can be done automatically by showing the options inside the “Export” file selector and checking the respective checkbox there.
    appdoo - Export project
  3. In Xcode, select the project in the project navigation tree on the left and focus on the section called “Signing”. Here you have to select your Development Team, the rest will be done automatically by Xcode, presuming you keep the “Automatically manage signing” feature active. Xcode - Signing
  4. In the Xcode device selector Select “Generic iOS Device” or any suitable device listed here (not a Simulator!) and build the app archive which can later be submitted to Apple. Xcode - Generic iOS device
  5. Build the archive by running the command “Archive” from the Xcode “Product” menu. If all goes well, a new window will appear after a short while showing a list of app archives you created with this Xcode installation. Select the most recently built archive and press the “Distribute App” button on the right column of the window. If for whatever reason this “Organizer” window should not appear in the foreground, you can still open it manually via the Xcode menu “Window”. Xcode - Organizer
  6. In this tutorial we want to release our new app on the App Store, so we select “iOS App Store” on the first screen and “Upload” on the one thereafter. Then Xcode will continue by performing some checks of your certificates and the app bundle itself. Once these checks are finished, a couple of other settings screens will be shown, which can be submitted without any changes to the preselected form fields.
  7. Clicking on the “Upload” button on the last screen will submit it to Apple.

After uploading the app bundle, it will be reviewed by Apple. You’ll be notified automatically once this review process is finished and your app version has either been approved or rejected by the review team.

If your app version has been approved and you chose to automatically release it after review, there is nothing to be done any more. In that case you’ll receive another mail shortly after stating that “The status of your app is now Ready for Sale”. For a manual release, just go back to appstoreconnect.apple.com, choose your app and version and release it manually.

If your app should have been rejected, the review team usually tells you why and adds a link to the status email with more information about it.

Please keep in mind that this documentation barely scratches the surface, and there is much more to say about the app store review process, so we strongly recommend to look at the documents listed below.

More Documentation

More information about how to create, submit and distribute iOS apps are available here: