I publish apps on a regular basis, every few months. But, every time the process seems to change. Anyway, today, when I tried to publish an app the usual way from the Archive view of the Organizer window, Xcode started giving meaningless error messages about “no identities are available for signing”. Then it kept crashing. As it turns out, the process to publish an app to app store has changed.
One now needs to use a separate tool called the Application Loader to publish an app. I found the official guide rather insufficient. So, here are the steps:
1. Verify that you are using a distribution provisioning profile to sign the Release build.
2. Build an archive.
3. Open Organizer window. From the Archive section export the app for Ad Hoc Deployment. Do not choose Submit to the iOS App Store. To sign the app, choose the same distribution provisioning profile that you used for release build. Do not choose a development provisioning profile. This will produce the .ipa file.
Using iTunes Connect, put your app in ready to receive application binary state. We can now proceed to submit the app.
4. From Xcode menubar, select Xcode > Open Developer Tool > Application Loader.
5. Log in using your iOS Developer Program user ID and password.
By default Application Loader uses various non-standard ports. They may be blocked by your corporate firewall. We should configure the tool to use SSL only.
6. From the menubar, select Application Loader > Preferences.
7. Click Advanced.
8. Select only DAV. Close the preferences dialog.
9. Click Deliver Your App.
10. Select your application from the drop down. Click Next.
11. Click the Choose button and select the .ipa file you had exported in step #3.
12. Click Send to submit the app. If all goes well, the process will end in a few minutes and you will see a confirmation.