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

# Publish to App Store

> Step-by-step guide to publishing your Bilt app on the Apple App Store

This guide walks you through submitting your Bilt app to the Apple App Store — from enrolling in the Apple Developer Program to your first TestFlight build.

Open **Settings → Publish** in your project to follow along. You can also click **Deploy & Share → Release on App Store** from the project header, which opens the **Quickstart** subtab.

## Prerequisites

* A working Bilt app you're ready to publish
* Enrollment in the [Apple Developer Program](https://developer.apple.com/programs/) (\$99/year)

## Step 1: Enroll in the Apple Developer Program

If you are not enrolled yet:

1. Go to [developer.apple.com/programs/enroll](https://developer.apple.com/programs/enroll)
2. Enroll as an individual or organization
3. Complete identity verification (may take 24–48 hours)

## Step 2: Create your app and bundle ID

Register the bundle ID in Apple's developer portal, create the app in App Store Connect, then link both in Bilt.

<Steps>
  <Step title="Register a Bundle ID">
    1. Go to [Apple Developer Portal — Register a Bundle ID](https://developer.apple.com/account/resources/identifiers/bundleId/add/bundle)
    2. Enter your bundle identifier (e.g. `com.yourcompany.appname`) and a description
    3. Click **Continue** and complete the registration
  </Step>

  <Step title="Create the app in App Store Connect">
    1. Go to [App Store Connect — Apps](https://appstoreconnect.apple.com/apps)
    2. Click **+** next to **Apps** in the top left corner and select **New App**
    3. Select **iOS** as the platform, enter your app name, and choose a primary language
    4. For **Bundle ID**, select the bundle ID you registered in the previous step
    5. For **SKU**, enter any unique value (for example, the last segment of your bundle ID)
    6. Set **User Access** to **Full Access**, then click **Create**
  </Step>

  <Step title="Link both in Bilt">
    In your Bilt project, open **Settings → Publish → App Store**:

    1. Under **Bundle ID**, click **Configure Bundle ID**, enter the bundle identifier you registered, and click **Save**
    2. Under **App ID**, click **Configure App ID** and enter the numeric App ID from App Store Connect if Bilt has not linked it automatically yet:
       * Open [App Store Connect — Apps](https://appstoreconnect.apple.com/apps)
       * Click the app you created
       * In the **left sidebar**, click **General → App Information**
       * On the App Information page, look under the **General Information** heading for **Apple ID** — a numeric value such as `1234567890` (this is not your bundle ID)
       * Copy that number and paste it into **App ID**

    <Tip>
      After your bundle ID and App Store Connect API key are saved, Bilt can usually detect the App ID automatically. If it appears on its own, you do not need to paste it manually.
    </Tip>
  </Step>
</Steps>

## Step 3: Create an App Store Connect API key

Bilt uses your API key to create and manage signing assets on your behalf. Generate the key in App Store Connect, then add it on the **App Store** tab.

<Steps>
  <Step title="Open App Store Connect API keys">
    Go to [App Store Connect → Integrations → App Store Connect API](https://appstoreconnect.apple.com/access/integrations/api)
  </Step>

  <Step title="Generate a new key">
    Under **Team Keys**, click **+** next to **Active**. Name the key (e.g. "Bilt"), set the role to **Admin**, and click **Generate**
  </Step>

  <Step title="Download and copy credentials">
    Mark down the **Issuer ID** and **Key ID**, then download the `.p8` private key file.

    <Warning>
      The `.p8` file can only be downloaded once. Store it securely.
    </Warning>
  </Step>

  <Step title="Link in Bilt">
    In your project, open **Settings → Publish → App Store**, scroll to **App Store Connect API Key**, and click **Configure API key**:

    1. Enter your **Issuer ID**
    2. Enter your **Key ID**
    3. Upload your **Private key (.p8)** file
    4. Click **Save**
  </Step>
</Steps>

## Step 4: Set up certificates and provisioning profiles

On the same **App Store** tab, scroll to **Certificate & profile**:

* **Generate** — Bilt creates a distribution certificate and provisioning profile for you (recommended if you do not already have signing assets)
* **Upload your own** — Provide an existing `.p12` certificate and `.mobileprovision` profile if you already use Apple distribution signing

Extension targets (widgets, etc.) can be configured in the **Targets** section below when your app needs them.

## Step 5: Build and publish to TestFlight

Open **Settings → Publish → Build**:

1. Select **App Store** as the build target
2. Click **Start App Store build** when all prior steps are complete
3. Bilt runs a cloud build. Progress appears under **Recent builds**
4. After the build finishes and Apple processes it, click **TestFlight** on the Build tab to manage testers

<Tip>
  The **Quickstart** tab shows which steps are done and links you to the tab that still needs attention.
</Tip>

## Step 6: Submit for App Store review

When you are ready to go live:

1. Complete your App Store listing in App Store Connect (description, screenshots, pricing)
2. Select your build in TestFlight and submit for review
3. Apple reviews the app
4. Once approved, your app is live on the App Store

## Publish tabs in Bilt

| Tab            | What to configure                                                                                 |
| -------------- | ------------------------------------------------------------------------------------------------- |
| **Quickstart** | Guided checklist for App Store or Play Store setup                                                |
| **App Store**  | Bundle ID, App ID, API key, distribution certificate, provisioning profile, and extension targets |
| **Build**      | Select App Store, Play Store, or Both; start builds; monitor progress; open TestFlight            |

## Common issues

<AccordionGroup>
  <Accordion title="Distribution certificate already exists">
    You have hit Apple's limit for distribution certificates on your account. Revoke an unused certificate in the [Apple Developer certificates list](https://developer.apple.com/account/resources/certificates/list), then try generating again in the **App Store** tab.
  </Accordion>

  <Accordion title="Bundle ID already declared on this project">
    If you see **A target with this bundle id is already declared on the project**, that bundle identifier is already linked to this Bilt project (for the main app or an extension). Use the existing target in the **App Store** tab, or choose a different bundle ID when registering a new one in Apple Developer.
  </Accordion>

  <Accordion title="Certificate or provisioning profile mismatch">
    Ensure your distribution certificate matches the provisioning profile, and both match the bundle ID. Regenerate in the **App Store** tab or upload matching assets.
  </Accordion>

  <Accordion title="Build fails">
    Check the build logs in the **Build** tab. Common causes: expired certificate, missing app icon, or unsupported API usage.
  </Accordion>

  <Accordion title="App Store rejection">
    Apple provides a reason for rejection. Common fixes: add a privacy policy URL, ensure the app has enough functionality, and remove placeholder content.
  </Accordion>
</AccordionGroup>

## Further reading

* [App Store deployment without developers](https://bilt.me/blog/app-store-deployment-without-developers-2026) — Alternatives to publish to the App Store without using Bilt
* [Publish your app](/docs/features/publish-your-app) — Feature overview
