How to deploy to Apple app store

Submitting your app to the app store can be a little daunting the first time. With the below steps your app will be submitted to the app store in no time.

Prerequisites

In order to upload to the App Store you are required to have access to an Apple developer account.

Deploying your app to the Apple app takes a few days to complete and consists of the following steps:

Step 1: Prepare your app for deployment

Visit your MobileApp project inside your code editor and open up the app.json file. Here you will need to modify the following three sections:

  • Set your app name, slug (used in your app's app store url) and version number:

"name": "Social Networking Backend App",
"slug": "social-networking-backend-app",
"version": "1.0.0",
  • Update the "ios" "infoPlist", bundleIdentifier and buildNumber values:

"ios": {
  "supportsTablet": false,
  "infoPlist": {
    "NSLocationWhenInUseUsageDescription": "Social Networking Backend App requires your location so that we can set user profile location info.",
    "NSLocationAlwaysUsageDescription": "Social Networking Backend App requires your location so that we can set user profile location info.",
    "NSLocationAlwaysAndWhenInUseUsageDescription": "Social Networking Backend App requires your location so that we can set user profile location info.",
    "NSLocationUsageDescription": "Social Networking Backend App requires your location so that we can set user profile location info.",
    "NSCameraUsageDescription": "Social Networking Backend App needs access to your camera to enable uploading photos and videos to your posts.",
    "NSMicrophoneUsageDescription": "Social Networking Backend App needs access to your microphone to enable sound when creating video posts.",
    "NSPhotoLibraryUsageDescription": "Social Networking Backend App needs access to your library to enable uploading media to your posts.",
    "NSPhotoLibraryAddUsageDescription": "Social Networking Backend App needs access to your library to enable saving media to your library."
  },
  "bundleIdentifier": "com.knowlephant.share",
  "buildNumber": "1"
}

Note 1: make sure to use your own app name inside each infoPlist message. Your users will get to see these warnings when using your app.

Note 2: make sure your bundleIdentifier is exactly the same as the one you will create in Step 2 when setting up your App Store app Identifier. A bundle ID typically consist of the following sequence: com.knowlephant.share - where 'knowlephant' is replaced with your company name and 'share' is replaced with your app name.

Note 3: make sure to increase your buildNumber each time you publish a new version to the stores.

Step 2: Prepare your App Identifier and test device

This step requires that you have access to your Apple developer account. Once signed in, visit the Certificates, Identifiers and Profiles section and perform the following actions:

Create your app's Identifier:

  • Once inside, open the Identifiers tab and add a new Identifier by pressing the '+' icon.

  • Inside the next screen, select 'App IDs' and press Continue.

  • Next, select the 'App' type and press Continue.

  • Next, fill out the 'Description' (your app name) and 'Bundle ID' (must be the exact same as the "bundleIdentifier" value defined in Step 1) fields. Leave the rest as is an press Continue.

  • Double check your entered information and press Register.

Add your device (used to white-list your device for internal testing in TestFlight):

  • Open the Devices tab and add a new Device by pressing the '+' icon.

  • Give your device a name and add your UDID string. To get access to your UDID data, simply follow the steps provided through this link. Once done, press Continue and complete the process.

Step 3: Prepare your App Store listing

Again, this step requires that you have access to your Apple developer account. Once signed in, visit the App Store Connect section, press the 'My Apps' button and perform the following actions:

  • Add a new app by pressing the '+' icon and selecting 'New app'.

  • Fill out your app info, link the app with the Bundle ID that you set up in the previous step, and press Create.

Step 4: Submit your first build to TestFlight.

Before you can submit your app for approval in the app store, and before filling out your app's App Store information, you're going to upload a new build to TestFlight. TestFlight is an app, created by Apple, that is used to test your application and inviting external users to beta-test your application.

Uploading your app to TestFlight is incredibly simple thanks to Expo's Managed Workflow experience that you can take benefit by following these steps:

  • Open your command prompt and navigate to your app's MobileApplication folder.

  • Enter the following command:

$ expo build:ios
  • Select 'Archive - Deploy the build to the store' for the first question and answer all others by following the suggestions outlined here.

Once you have received the 'Success' message, your app's build process is completed, but you still need to complete uploading your app to TestFlight. For this you have two options:

1) Use the command line prompt by entering the following command:

$ expo upload:ios

Inside the command line you will be asked to sign in to your apple account. The upload process may take a couple of minutes to complete, but eventually your application should become visible inside the TestFlight tab in your app's App Store Connect listing.

Note: this method may not always successfully upload your app to TestFlight and present you with an error. My experience is that method 2 outlined below will always be effective.

2) Use the Transporter desktop app

Transporter for both Mac and Windows can be downloaded from this link.

Once you have Transporter up and running, take the following steps to complete the upload process:

  • Sign in to your Expo account, press the Builds tab and select your most recent build.

  • Once your build status indicates that your build is Finished, scroll down and press the download icon. This will download your build .ipa file.

Note: don't worry about the large file size for now. The eventual app's size will be significantly smaller (~63MB).

  • Once your app appears inside the TestFlight section of your App Store Connect account, press the 'manage' button on the 'Missing compliance' message, select 'No' and press 'Start testing'.

Step 5: Start testing and prepare your app store listing information

Your app's new build should now be visible under the TestFlight tab inside App Store Connect. Before you can start testing the app, you must complete two more actions:

  • Manage permissions: ...

  • Invite yourself as TestFlight tester: visit the 'Internal Group' - 'App Store Connect User' section, press the '+' icon and make sure your email address is listed as a tester. You will now receive an email with access code that is used in your phone's TestFlight app and lets you install your application.

Once your app passes your testing process, the final step is to fill out your app's listing info under the App Store tab and submit your app for review to the Apple app store. The review process may take 1-2 days.

Last updated