This step-by-step guide to configuring, building, and submitting your app for App Store publication explains in detail how to create and install a distribution provisioning profile, use Xamarin Studio to create a distribution build, and use iTunes Connect and the Xcode Archive Tool to submit an application to the App Store.
The three-step process of submitting to the App Store involves:
- Creating a Distribution Provisioning Profile
- Using your profile to build the application
- Submitting your application through iTunes Connect
For your app submission to be successfull, you must know all the steps needed to provision, build, and submit an application for App Store distribution:
1. Pre-submission and submission process
The first after your app has been submitted for publication to the App Store is Apple’s review process ensuring it meets Apple’s quality and content guidelines. In case that it doesn’t meet them, Apple will reject it, at which time you will need to address the non-conformance cited by Apple, and then resubmit your app. So to even your odds, study Apple’s guidelines and adapt your application to fit them. For details please visit developer.apple.com/appstore/ resources/approval/guidelines.html.
When submitting your app pay make sure that your app’s description matches the functionality included in the app and test it on every device it supports to make sure it doesn’t crash under normal usage.
2. Building for App Store distribution
In order to publish an application to the App Store, you first need to build it for distribution which involves creating a distribution provisioning profile and then using it to create a distribution build. Steps for creating a distribution build are multiple and include following:
- Creating and installing a distribution profile
iOS uses provisioning profiles to control how a particular application build can be deployed. These are files that contain information about the certificate used to sign an app, the Application ID, and where the app can be installed. For development and ad-hoc distribution, the provisioning profile also includes the list of allowed devices to which you can deploy the app. However, for App Store distribution, only certificate and app ID information are included, since the only mechanism for public distribution is through the App Store.
iOS provisioning profiles are managed through a web-based tool called the iOS Provisioning Portal. To access the portal, log in to the iOS Dev Center at developer.apple.com and click Member Center from the links at the top.
For App Store distribution, you need to create an Application ID and a distribution profile for the application in the provisioning portal. You’ll associate the distribution profile with the Application ID you create.
To create an Application ID, a distribution profile, and a production certificate go to the Member Center, select Certificates, Identifiers, and Profiles. Select Identifiers in the left-hand column under “iOS Apps”. This will show a list of all identifiers associated with your developer or your team account. Click the “+” in the top right to create a new ID. Enter a Description, enabled Services, Prefix/Bundle Seed ID (use the Team Bundle Seed ID), and finally, click Submit.
You can download your profile by opening it from the provisioning profile list. Once downloaded, drag-drop the downloaded profile file onto the Xcode icon in the Dock to install it. If you don’t yet have a Production Certificate associated with your account, you need to create one. Navigate to Certificates, and click the “+” to generate a new Certificate.
If you dont know how to do it, the Portal will instruct you on how to generate a Certificate. Open Keychain Access and choose from the main menu Certificate Assistant, request Certificate from a Certificate Authority. Fill in your information and select the “Saved to disk” option, upload the Certificate Signing request, and Download the Certificate. It will be automatically added to your Keychain.
Finally, with the production provisioning profile created and installed, you can now use it to create a distribution build for App Store publication.
- Creating a Distribution Build Configuration
Now you need to build a Xamarin.iOS application that can be published to the App Store. To start with, you’ll need to add a new build configuration to the Xamarin Studio solution. This new configuration will use the distribution profile you created and installed in the previous section to sign the application for App Store distribution.
Steps for creating the build configuration:
- Double-click on the solution in the Solution Explorer to display the Solution Options dialog
- Select Build > Configurations in the left-hand pane
- Under the General tab, select Add
- In the New Configuration dialog, give the configuration a name, such as AppStore, and then select iPhone as the Platform. Click OK in the Solution Options dialog.
Configuring the Build Configuration for your app
- Back in the Solution Explorer, right-click the project and then select Options.
- Select Build > iOS Build and then choose the newly created AppStore configuration. Set any additional build settings your application may need for the AppStore configuration, such as Additional mtouch arguments.
- Select iOS Bundle Signing in the left-hand pane.
AppStore configuration steps:
- Set the Identity to Distribution (Automatic) and then select the Provisioning profile you installed earlier.
- Select iOS Application in the left-hand pane.
- On the Summary tab, under the iOS Application Target section, set the Application name, Identifier, and the Version and Devices. The Identifier must be the same value that was set for the Bundle Identifier when you created the provisioning profile.
For an application distributed in the App Store, you should also include application icons. Click OK in the Project Options dialog. In Xamarin Studio, set the Build Target drop-down list to the newly created AppStore|iPhone configuration in the top toolbar. Select Build > Build All from the main menu to build the application. You should always ensure that the application builds without errors before creating an Archive to distribute. If the application builds successfully you are ready to upload it to the App Store.
3. Publishing your app to the App Store
Applications are published to the App Store by using the iTunes Connect website itunesconnect.apple.com along with the Xcode Archive Tool, which is included with the iOS SDK. Apple offers an integrated build and deployment mechanism in Xcode called Archiving. Xamarin Studio 3.0 can integrate with this feature to simplify the deployment process.
Some of the advantages of deploying via Build & Archive include validating the app before uploading and the option to symbolicate Crash reports for the release (if the corresponding Archive has been saved).
Build & Archive can be used to:
- Deploy to the App Store
- Build for Ad-hoc Distribution
- Build for Enterprise Deployment
- Export for later use.
Steps in deploying to the App Store using the Xcode Organizer’s Archive feature
1. Distribution certificate
It can be either Deployment, Enterprise or Ad-hoc from the iOS Provisioning Portal. Review the document Creating and Installing a Distribution Profile.
2. iTunes Connect
To deploy an application to the App Store, it must be configured in iTunes Connect and then uploaded (if you are building for Ad-hoc or Enterprise deployment this step can be skipped).
3. Configuring your app in iTunes Connect
Navigate to iTunes Connect, log in and follow these steps to publish your application:
- Click Manage Your Applications in the iTunes Connect main menu.
- Click Add New App.
- Select iOS App (you’ll only be asked to choose if you belong to both the Mac and iOS dev programs).
- Choose the default language, enter the App Name, SKU, and Bundle ID. For the Bundle ID, select the App ID you set when you created the provisioning profile from the list. Press Continue.
- Fill in additional app metadata including availability, pricing, and educational discount then Continue.
- Fill in the version information, product categories, content rating information, description, support email, website, keywords, and App Store screenshots then Save.
Now that you’ve entered all the information iTunes Connect requires to publish your app, you can upload the actual app binary for approval. To do that, you need to press the Ready to Upload Binary button, and progress through the questions.
The next screen lets you choose what happens after the app is approved. It can either be automatically added to the App Store immediately after approval or it can remain in an approved state waiting for you to manually release it on the App Store.
After you’ve saved your release control choice the application’s status is changed to Waiting for Upload and the binary can be deployed via the Archive tool.
Steps in deploying to the App Store using the Archive tool
Xamarin Studio will attempt to choose the correct Provisioning profile based on the Bundle ID and the developer’s Identity, but you can manually select a specific Provisioning profile via the menu item Project > Options > iPhone Bundle Signing. To archive the current application, select Xamarin Studio’s Build > Archive menu item.The status bar will display the build progress. When complete, the Archives tab will be displayed.
The Archives tab displays a list of archived applications. Click on an app to see application details and the individual archives that have been built. Comments can be added to the archive (eg. make a note of why the archive was created, such as for a beta test release, or an App Store production deployment). Comments are useful because it is a good idea to keep archives (especially those released to the App Store or an Enterprise deployment) because it will allow you to symbolicate.
Once the archive has been created in Xamarin Studio, switch to Xcode for deployment options.
Start Xcode and then open the Organizer from the Window menu.
In the Organizer, choose the Archives tab. This screen shows the same list of applications on the left as the Archives tab in Xamarin Studio, and provides options to validate and distribute an archive.
4. Validation and distribution steps
Both buttons start a ‘wizard’ that guides you through the process. The first step is to choose which type of distribution. For App Store submissions Xcode needs to login to iTunes Connect. Enter your Apple ID and password. Xcode retrieves a list of applications configured in iTunes Connect with a status of ‘Waiting for Binary’. Choose the correct application from the list. Xcode will then proceed to upload the application.
If you are in the process of distributing your app, it will then be uploaded to iTunes Connect. Once the upload is complete, this message will appear to confirm that the application submission has been successful and is now in the queue for review.
On the other hand, if you chosed to distribute your app, the status in iTunes Connect will show that it is Waiting for Review (it may temporarily read Upload Received while it is processed).
We hope this tips will help you in publishing your iOS app successfully.