# Submit To the App Store

In order to be able to submit apps to the App Store, you need to be enrolled in the [Apple Developer Program](https://developer.apple.com/programs/)​![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2019/10/apple-developer-program-1024x613.jpg)Apple Developer Program

Apple Developer Program

It costs $99/year but it will give you access to a bunch of different benefits including:

* Access to submit apps to the App Stores on all Apple platforms
* Ability to create Safari extensions and list them in the extensions gallery
* Access to Beta versions of Apple software
* Testing tools like TestFlight
* App analytics and [advanced app capabilities](https://developer.apple.com/support/app-capabilities/)​

If you’re planning to build apps for the App Store, then it’s worthwhile to sign up!

Keep in mind that your apps will be removed from the App Store if you don’t renew your membership next year.

#### App Store Connect <a href="#app-store-connect" id="app-store-connect"></a>

​[App Store Connect](https://appstoreconnect.apple.com/) is one of the websites that you’ll get access to after you sign up. It’s your portal to manage all things to do with the App Store.

Here’s what the App Store Connect dashboard looks like:App Store Connect dashboard![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/10-iTunes-Connect-1024x517.png)App Store Connect

Before you’re ready to submit your app, let’s double check a few things…

​

Alright! Now you’re ready to create your App Store listing.

First, login to [App Store Connect](https://appstoreconnect.apple.com/):![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/10-iTunes-Connect-1024x517.png)App Store Connect

To publish an app, go to the **My Apps** menu and select the “**+**” option to create a new app. If you are looking to submit an update to an existing app, the steps are similar but instead of adding a new app, you’ll be selecting an existing app instead.New App Store listing![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2019/10/app-store-connect-new-app-962x1024.png)​

#### App Name and Category <a href="#app-name-and-category" id="app-name-and-category"></a>

Fill in the information about your app and use the “?” button if you are not sure what Apple wants. The website is pretty straight forward too.

At this point, you have to fill in all the informations about your app. The name, description, the category (to be placed in the App Store), the minimum age of the audience and a privacy policy and support URL.

If you app is based on social media and demands a log in, you have to provide a test account and password for the Apple reviewer.![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/12-Publish-New-App-1024x578.png)Fill in app store listing information

#### App Privacy Policy <a href="#app-privacy-policy" id="app-privacy-policy"></a>

You’ll also have to provide a URL to a **privacy policy**. If you’re not sure of how to write one, simple google for “App Privacy Policy” and you’ll see a lot of samples and privacy policy generators that you can use.Don’t forget to fill in the URL for privacy policy![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/13-Privacy-Policy-1024x330.png)App privacy policy

You’re also going to have to put it on a public URL. If you have your own website, put it on there. If you’re not sure how to put it on a URL, you can use a Facebook page or a [website builder](https://wix.com/).

#### App Pricing <a href="#app-pricing" id="app-pricing"></a>

Decide on the **pricing** of your app on this screen:Set up the pricing and also if you need to publish your app worldwide (or not)![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/15-Pricing-1024x629.png)App pricing options

#### App Release Options <a href="#app-release-options" id="app-release-options"></a>

You can decide how your app should be **released** after it passes the certification process.Decide if your app should be available after the review process or set up a launch date.![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/14-Release-Options-1024x294.png)App Release Options

* **Manually**: you’ll have to go in to App Store Connect and release it
* **Immediately**: it’ll be released as soon as it passes certification
* **On a date**: it’ll be published on a specific date (if it has passed certification)

### Upload your app to App Store connect using Xcode <a href="#upload-your-app" id="upload-your-app"></a>

First, your app needs to run properly and be clean of errors (the red warnings).

Second, you should have your Signing and Team information set up in Xcode.

Don’t forget you should have your app version set to 1.0.0 if you are publishing a new app (or remember to increment the build version if you are publishing an update).![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/01-Main-App-Settings-1024x541.png)​

At this point if you are still having issues regarding your Apple ID or the certificates, I would recommend to check [this article](https://codewithchris.com/deploy-your-app-on-an-iphone/). As a small refresher, go to **Xcode** >> **Preferences** >> **Accounts**.![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/02-Check-Certificates-1024x705.png)​

**Publishing:**

Publishing an app with Xcode 11 is really simple. Where it used to take multiple steps, certificates, profiles, etc. now Xcode is smart enough to enable or create all of those by itself.

To create the full app archive, you first need to select the **Generic iOS Device** from the list of simulators.![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/03-Generic-iOS-Device-1024x765.png)​

Now go to **Product** >> **Archive** and let it bundle your app. This can be a pretty lengthy process depending on the size of your app.![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/04-Archiving-1024x71.png)​

Once this is done, the Archive window will open and this is where you can manage all the archives generated by Xcode.

Every time you select Archive in the menu, Xcode will bundle a new archive for App Store Connect.

If you have duplicates or older ones, just delete them from this list.![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/05-Archive-Folder-1024x652.png)​

Now select the archive and choose **Distribute App**. You’ll be prompted to select the method of distribution:![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/06-Distribution-List-1024x654.png)​

Once you have selected **iOS App Store**, it will go over a couple of checks and validations to make sure you are not uploading a broken app.

If something happens, there is a great chance Xcode will stop you here and you’ll have to go back to coding or adding missing assets like icons.![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/07-Validation-1024x652.png)​

If Xcode doesn’t find anything wrong with the archive, the upload process will follow. Once again the upload time will vary depending on the archive size and your internet connection.![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/08-Uploading-to-iTunes-Connect-1024x617.png)​

Once completed, you will see a final window like this. Congratulations! Your app is halfway there to the iOS App Store.![](https://codewithchris-wpengine.netdna-ssl.com/wp-content/uploads/2018/10/09-Success-1024x624.png)
