How to submit iOS app to app store using Xcode

I am far from submitting my app to the Apple app store, but I just came accross this information:

Starting February 1, new apps and app updates submitted to the App Store must be built with Xcode 5 and iOS 7 SDK. For details on how to submit your app using Xcode, review the App Distribution Guide and iTunes Connect Developer Guide.
(Source https://developer.apple.com/ios7/)

and

(…) Then you create an archive and sign it with your distribution certificate in Xcode. Last, you submit your app using Xcode or Application Loader. (…)
(Source https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduction/Introduction.html)

What does that mean for submitting apps developed with Ionic/Cordova to the Apple app store?

Is it still possible to submit an Ionic app?

Do I have to get my Ionic project into Xcode? If so, how?

Thanks for clarification.

1 Like

Yes, you should still be fine submitting app to the app store. As long as you’re app is supported on iOS 7 (which ionic and cordova do) you’ll be fine.

There have been some ionic apps (GoingOut ChefSteps in particular) that have made it through Apples App review process and are in the store now. You should be fine

Thanks. Is there any tutorial on how to publish an iOS app? The publishing sections in the documentation seems to deal with Android only.

2 Likes

Your best bet for signing and publishing an iOS app is to just open up Xcode and go from there.

Thankfully, Xcode 5 makes it a lot easier than 4.3 did, but the guides on apples developer site is the best place for info. Either that or Youtube :smile:

It’s a pain in the ass…
As a beginner, I can’t find where to start. With the android guide, it was really easy. You really should consider adding the iOS guide too…

9 Likes

Ok, I am going to try and explain the iOS App Store submission process here. It is actually easier than the Android submission - way less typing! :smile:

First and Foremost - you have to be a member of the Apple Developer Programme. If you are, then you can log into the Developer Portal at http://developer.apple.com and go to the ‘iOS’ section. In there, you can click on ‘App IDs’ and create a new App ID for your app. This is usually something like:

com.<yourcompany>.<yourappname>

or similar. e.g. if you app was called SuperWidget and your company was Acme, the ID could be com.acme.superwidget

IMPORTANT: Make sure in your app config.xml file in the main app folder, you have set up the widget id with the same App ID as you used on the Developer Portal:

<widget id="com.<yourcompany>.<yourappname>" version="0.0.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

TIP: It is also handy to change the version= number each time you upload to the App Store for easier management of build images later.

That bit is quick and easy.

Now, in your Ionic app folder, you have a folder called:

<yourappname>/platforms/ios/

Open this folder, and you should have a file called:

<yourappname>.xcodeproj

Double click on this file name to open up your project in XCode.

IMPORTANT: Whenever you make a change in your project or to the config.xml file, you must remember to run the command:

ionic prepare ios

in order to update your ios project folder with the latest changes.

Ok, now in XCode, once your project is loaded, click on ‘Product’ on the top level menu, then select ‘Archive’.

This will create an archive package which you send to Apple. This should also open up the ‘Organizer - Archives’ window in XCode automatically. If it doesn’t, you can click the ‘Window’ then ‘Organizer’ menu in XCode.

In the Organizer, you can see a list of your apps, and the subsequent archives for each one. Click on the Archive snapshot you just made (they should have the dates created next to each snapshot) and then click on the ‘Submit’ button on the top right.

This should open a small window asking for your Team Identifier for creating the Provisioning Profile. You should already have a team or individual developer certificate with Apple if you are on the Developer Program.

Then you can click ‘Submit’ within the small window to upload your binary to Apple.

Not the end of the journey yet though - one more step to finalise it. You now need to log into your iTunes Connect portal, where you have set up your app description, screenshots etc. for the App Store: http://itunesconnect.apple.com

Once in here, go to ‘My Apps’ and create the profile for your app as it should look on the app store, or else open a profile you have created earlier. Scroll down the page to the section called ‘Build’. You should see the build you uploaded via XCode in here so you can select it, then go back to the top of the page where you can submit your app for review! Done!

28 Likes

Thanks a lot for this detailled post.

A question: I’m blocked at the “archive” step.
The archive button is greyed. Looking for this problem, it seems related to the device selection accordind to this post. Briefly, it says that I should select “iOS Device” (not a simulator) to be able to archive.

However, when opening my project with xcode, the “iOS Device” option does not exist (see this screenshot).

Any idea?

EDIT : the answer of my problem is here
I’ll continue thought your tutorial :slight_smile:

In the Organiser window I see my apps, but clicking on the Archives button shows a blank page with “No Archives” on it.

When I used Product>Archive I got a “Build Succeeded” message.

Any help? I’m used to doing this with PhoneGap Build - this is my first time submitting with XCode.

Looks promising - https://www.youtube.com/watch?v=f3Y1amVx_zM

Can’t give any first person pointers b/c I’m still in dev, but he’s got a lot of thumbs up so I’d check it out!

The problem with this is - how does PGB process your Ionic/Cordova files? If you build FOR PhoneGap Build you do a bunch of stuff, like referencing the plugins in config.xml, then fine.

Can you just package your Ionic app in a zip and push it through PGB? Because if you could that would make things so, so easy.

If your “archive” step fail with “build failed”, and you coded on Windows, check on your windows computer that your files aren’t on read only state (check the www folder also).

Hey, have you find any solution regarding this ? I have the exact same problem.

[EDIT] found it, in the “Skip Install”, set the value for “Release” as “NO” and archive again. You’ll immediately see your app showing up in the archive organizer.

Buuut now I have another issue - the only archive made is “CordovaLib”, not the project, and can’t be submitted…

Yes, I had that issue too!

My solution was to remove the iOS platform from Ionic and then add it again. Then I Built again in XCode and it’s all working.

BUT - I had a permissions issue the first time I did this; I didn’t have access permissions to the folders. The internet suggests a restart, which I did. Then I removed and added iOS platform again. Now it’s working.

1 Like

Don’t forget to run grunt watch in order to pick up any changes in your sources.

Also, in xcode’s build settings, you need to select the correct signing identities and provisionning files in order to be able to export and publish your app.

To the Ionic team: It would be nice to be able to set these in the project’s config.xml

1 Like

this worked for me. Really simple. http://virteom.com/how-to-create-an-ipa-file-using-xcode

Once you get tot the last step you can export the IPA file or even better Xcode will allow you to sign and send it straight to itunes. Then you can manage the app in itunes connect as usual.

Having a trouble with a submission, and wondering if anyone can help me out. I get to the point where I can see the Archive. When I click ‘Submit’, it churns for a few seconds, then I get the message “iTunes Store operation failed.” "No suitable application records were found. Verify your bundle identifier is correct.

I have checked this several times, and the bundle identifier in my config.xml file matches exactly the ID of my App ID registered at Develper.apple.com.

Any suggestions on how I might resolve this?

Thanks,
Rick

1 Like

Try to go to itunes connect and create a new app with this bundle identifier. I think when you submit apple check on itunes connect if an app exist on your account with this identifier

I’m trying to follow the instructions by cyber ferret but I dont see product > archive in xcode. What’s the latest flow?

update: looks like it’s product > scheme > edit scheme https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/SubmittingYourApp/SubmittingYourApp.html

What version of XCode are you using? On 6.4 it’s definitely Product > Archive:

Hey,

I know this is a rather old topic, but you may want to check out my in depth, step by step tutorial about this, it was featured on Pluralsight: http://tutorials.pluralsight.com/review/how-to-publish-our-calculator-application-to-the-apple-s-app-store-and-google-s-play-store/article.md

Hope any new people who will be looking for this information benefit from it.

1 Like