> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daftplug.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish your iOS app

> Follow these steps to get your Progressive Web App (PWA) onto the Apple App Store.

## Building Your App

Before you can start the submission process, you’ll need to build the Swift project that will load your PWA:

The whole process can be done in just a few steps:

1. Unzip the folder you downloaded from the email we sent you.
2. Open a terminal in the `src` directory.
3. Run this command: `pod install`

   > [!NOTE]
   >
   > If you get an error running `pod install`, try running `brew install cocoapods`. (If you need to install Homebrew, [click here](https://brew.sh/))
4. Open the `.xcworkspace` file in your src directory.

   > [!WARNING]
   >
   > If you open and attempt to build the `.xcodeproj` file, your build will fail. The `.xcworkspace` file is the correct file you need to build.
5. Click `Product` > `Build` in Xcode to build your project.
6. With the project opened in Xcode, click ▶️ to test your PWA in an iPhone simulator. You may also choose other iOS simulators to try out your app on those devices.

## Adjusting Capabilities

Under xcode `Signing & Capabilities` tab, check and disable all capabilities your app doesn’t need. Use only those that are actually involved in your application. This is important for passing publishing verification.

![Adjusting Capabilities](https://mintcdn.com/daftplug/zqqCVWx6lM-0hmhc/images/progressify/mobile-apps/signing-capabilities.jpg?fit=max\&auto=format\&n=zqqCVWx6lM-0hmhc\&q=85\&s=5ad2449f677f257e69f404aee5beb43f)

## Publishing

The next portion of getting your PWA in the App Store is the most complicated, and may take some time to work through, but we’ll go through each step in more detail.

**1. Sign into your Apple Developer account**

To submit your app to the iOS App Store, sign-in to your Apple Developer Account. If you don’t have an Apple Developer account, enroll [here](https://developer.apple.com/programs/enroll) Enrollment costs \$99 USD/year, though non-profits can have this fee waived.

**2. Create a Bundle ID**

Next, you will need to create a Bundle ID on your Apple Developer Account that matches the Bundle ID associated with your package.

1. Navigate to your [Apple Developer account page](https://developer.apple.com/account/) and select `Certificates, Identifiers & Profiles`
2. Select `Identifiers` and click the `+` symbol to add a new identifier.

   ![Identifiers](https://mintcdn.com/daftplug/zqqCVWx6lM-0hmhc/images/progressify/mobile-apps/identifiers.png?fit=max\&auto=format\&n=zqqCVWx6lM-0hmhc\&q=85\&s=2219b97bd87f481ee7d5b642319a7467)
3. Select `App IDs` and then choose `App` as the type.
4. Add any `Description` that you see fit.
5. Add your Bundle ID. `Important: This must match the bundle ID of your package.`
6. In the capabilities section, enable `Associated Domains` and `Push Notifications`.
7. Click `Continue` and then `Register` to finish adding the identifier.

> [!NOTE]
>
> If you didn’t take note of your Bundle ID, you can find it in the `project.pbxproj` file.

**3. Create a Certificate Signing Request (CSR)**

Next, you will need to use the Keychain Access application to create a Certificate Signing Request:

1. Launch the `Keychain Access` app.
2. From the top menu bar, choose: `Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority`.
3. Enter your email address and your name. You may leave `CA Email Address` empty.
4. Choose the `Saved to disk` option and select `Continue`.
5. You’ll be prompted to save a `.certSigningRequest` file to disk.

**4. Create a Certificate**

Now, you will use the CSR we created in the last step to create a certificate:

1. Navigate back to the `Certificates, Identifiers, & Profiles` section on your Apple Developer account page.
2. Select `Certificates` and select the `+` symbol to add a new certificate.
3. Select `Apple Distribution` and click `Continue`.
4. You will be prompted to upload a Certificate Signing Request. Choose the file you created in the previous step, and click `Continue`.
5. On the final screen, Choose `Download` to save your `.cer` file to your disk.

**5. Install the Certificate**

Now you just need to install the certificate you downloaded:

1. Open the `Keychain Access` app.
2. Make sure you are in the `login` section on the left navigation bar.
3. Drag your downloaded `.cer` file onto the list of certificates.

   ![Certificate Drag](https://mintcdn.com/daftplug/zqqCVWx6lM-0hmhc/images/progressify/mobile-apps/install-certificate.png?fit=max\&auto=format\&n=zqqCVWx6lM-0hmhc\&q=85\&s=3cbe367fda9038ca8cdffb1d114e76fb)

**6. Create a Provisioning Profile**

Next, you can use the certificate you created to create a Provisioning Profile:

1. Navigate back to the `Certificates, Identifiers, & Profiles` section on your Apple Developer account page.
2. Select `Profiles` and select the `+` symbol to add a new profile.
3. On the next page, select `App Store` under `Distribution` and click `Continue`.
4. You will be prompted to select an app ID, choose the Bundle ID you created in Step 2 and click `Continue`.
5. Next, you will be prompted to choose a certificate. Select the certificate you created in the last step and click `Continue`.
6. You’ll be asked for a Provisioning Profile Name. Use your Bundle ID and then click `Generate`.
7. Finally, select `Download` to download your `.mobileprovision` file.

**7. Create Your App Reservation**

Once you have a provisioning profile, you can create an app reservation on your developer account.

1. Go back to your Apple Developer account page and choose `App Store Connect`.
2. Select `My Apps`.
3. Select the `+` symbol and then click `New App`.
4. You will be prompted for details about your app:
   1. Choose `iOS` for the platform.
   2. Use any name you would like.
   3. Select a language.
   4. Select the Bundle ID we created in the previous step.
   5. SKU can be any string you would like.
   6. Select `Full Access` under User Access.
5. Finally, click `Create` to complete your app reservation.

**8. Upload Your App Package**

After you create your app reservation, you’ll be redirected to the app details page. There, you can add metadata about your app, including screenshots, description, and more.

After you’ve filled out any data you want to include with your app, it’s time to upload your PWA app package.

First, you’ll need to sign in to Xcode:

1. Click `Xcode` in the top menu bar.
2. Click `Preferences`.
3. Navigate to the `Accounts` panel.
4. If you don’t see your Apple Developer account already, click the `+` symbol in the bottom left.
5. Sign in to your account.

Next, you’ll need to assign your project to your account:

1. Select the `Project Navigator` tab.
2. Select your application.
3. Select `Build Settings`.

   ![Build Settings](https://mintcdn.com/daftplug/zqqCVWx6lM-0hmhc/images/progressify/mobile-apps/build-settings.png?fit=max\&auto=format\&n=zqqCVWx6lM-0hmhc\&q=85\&s=98ca953313b25dc3a067e000636cfe7f)
4. Scroll down to the `Signing` section.
5. Under `Code Signing Identity`, set `Release` to `Apple Distribution`.
6. Under `Code Signing Style`, set `Release` to `Manual`.
7. Under `Development Team`, set `Release` to your Apple Developer account team.
8. On the same project page, select `Signing & Capabilities` and then `Release`

   ![Release](https://mintcdn.com/daftplug/zqqCVWx6lM-0hmhc/images/progressify/mobile-apps/release.png?fit=max\&auto=format\&n=zqqCVWx6lM-0hmhc\&q=85\&s=e960d59fc6f321d2e8a463cfae97da9a)
9. Under `Provisioning Profile`, select `Download Profile`
10. Choose the profile you created in the previous steps.

Lastly, you just need to create an archive and upload it:

1. At the top of Xcode, select your iPhone simulator name and select `Any iOS Device (arm64)`.

   ![Any iOS Device](https://mintcdn.com/daftplug/zqqCVWx6lM-0hmhc/images/progressify/mobile-apps/any-ios-device.png?fit=max\&auto=format\&n=zqqCVWx6lM-0hmhc\&q=85\&s=de4f783bacbe1a3b177be0285b5c3da3)
2. Next, select `Product > Archive` from the Mac OS top menu bar.
3. When the archive process finishes, select `Distribute App > App Store Connect > Upload`.
4. Follow the prompts to upload your application!

**9. Submit for Review**

The last thing you need to do is submit your app for review:

1. Go to your apps list at the [App Store Connect](https://appstoreconnect.apple.com/apps).
2. Scroll to the `Build` section.
3. Click `Select a build before you submit your app`.
4. Choose the archive you just created.
5. Once you’ve set and reviewed the metadata for your app, hit `Submit for Review` to complete your submission.

Your PWA still has to be approved, but if it is, it will appear in the App Store typically within 24-48 hours.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.