---
title: App Store Connect Destination
description: Configure an App Store Connect destination to upload iOS builds to TestFlight, distribute them to beta groups, and submit them for App Review.
---

# App Store Connect

To submit your iOS app builds to TestFlight and the App Store, you need to configure an App Store Connect destination in the Capawesome Cloud Console. Every submission is uploaded to TestFlight. Depending on the destination's settings, the build is also distributed to external beta groups and submitted for App Review.

!!! tip "AI-Assisted Setup"

    For a more guided experience, add the [Capawesome skills](../../../ai/skills/index.md) to your project with `npx skills add capawesome-team/skills --skill capawesome-cloud` and use the following prompt with your preferred AI coding assistant:

    ```
    Use the `capawesome-cloud` skill from `capawesome-team/skills` to help me set up an App Store Connect destination in Capawesome Cloud.
    ```

## Configuration

To create an App Store Connect destination, navigate to the [Destinations](https://console.cloud.capawesome.io/apps/_/destinations){:target="_blank"} page in the Capawesome Cloud Console and provide the following information:

- **Name**: A descriptive name for this destination (e.g., "Production iOS", "TestFlight Beta").
- **Platform**: Must be set to `iOS`.
- **Type**: Must be set to `App Store Connect`.
- **Authentication method**: Choose how to authenticate with App Store Connect. You can use either `Apple ID + Password` or `API Key`. [Beta groups, App Review submission](#testflight-and-app-review), and [release notes](#release-notes) require `API Key`.
- **Team ID**: Your Apple Developer Team ID from the Membership Details section.

Depending on the authentication method you choose, you will need to provide additional credentials:

### Apple ID + Password

- **Apple ID**: Your Apple ID email address.
- **Apple App ID**: The Apple ID property from the App Information section in App Store Connect.
- **App-specific password**: An app-specific password generated on your Apple ID account page.

### API Key

- **API Key File**: The `.p8` private key file downloaded from App Store Connect.
- **Key ID**: The Key ID associated with your API key.
- **Issuer ID**: The Issuer ID from App Store Connect.

Read on for instructions on obtaining these credentials.

## Obtaining Credentials

### Team ID

1. Sign in to your [Apple Developer account](https://developer.apple.com/account){:target="_blank"}.
2. Scroll down to **Membership Details**.
3. Copy your **Team ID**.

### Apple ID + Password Credentials

#### Apple ID

This is the email address associated with your Apple Developer account.

#### Apple App ID

1. Sign in to [App Store Connect](https://appstoreconnect.apple.com){:target="_blank"}.
2. Navigate to **Apps** and select your app.
3. Go to **App Information**.
4. Copy the **Apple-ID** value (a numeric identifier).

#### App-specific Password

1. Sign in to your [Apple ID account page](https://appleid.apple.com){:target="_blank"}.
2. Navigate to **Security** section.
3. Under **App-Specific Passwords**, click **Generate Password**.
4. Enter a descriptive label (e.g., "Capawesome Cloud").
5. Copy the generated password and save it securely.

### API Key Credentials

#### API Key File, Key ID, and Issuer ID

1. Sign in to [App Store Connect](https://appstoreconnect.apple.com){:target="_blank"}.
2. Navigate to **Users and Access**.
3. Select the **Integrations** tab, then select **App Store Connect API**. **Note**: If you do not see this tab, ensure that your account has the necessary permissions (Admin or App Manager role).
4. Click the **+** button to create a new **Team Key**.
5. Enter a name for the key (e.g., "Capawesome Cloud") and select **App Manager** as the access level.
6. Click **Generate**.
7. Copy the **Issuer ID** displayed at the top of the page.
8. Copy the **Key ID** from the newly created key row.
9. Click **Download API Key** to download the `.p8` file. **Note**: You can only download this file once, so store it securely.

## TestFlight and App Review

Every submission uploads the build to TestFlight. With the `API Key` authentication method, the destination can also distribute the build to external TestFlight beta groups and submit it for App Review:

- **Beta groups**: The external TestFlight beta groups to distribute the build to, up to 20.
- **Submit for App Review**: Submit the build for App Review after the upload.
- **Release type**: Whether you release the approved version yourself (`Manual`) or Apple releases it automatically (`After approval`).
- **Cancel pending submission**: Cancel a submission that is waiting for review before submitting the new build.

See [Submit for App Review](../submit-for-app-review.md) for the prerequisites, how to set these options, and what a submission does step by step.

## Release Notes

[Release notes](../release-notes.md) require the `API Key` authentication method and may be up to 4,000 characters per language:

- **TestFlight**: The default text becomes **What to Test**. TestFlight doesn't support translations, and fastlane removes emoji and `<` characters from the text and truncates it at 4,000 bytes before uploading it.
- **App Store**: With **Submit for App Review**, the release notes also become **What's New** of the App Store version. Only then are translations accepted. Apple rejects **What's New** on the [very first App Store version](../submit-for-app-review.md#first-app-store-version) of an app.

## Common Issues

### Submission not appearing in TestFlight

It may **take some time for the build to process** in App Store Connect before it appears in TestFlight. If your build does not appear after a reasonable amount of time, make sure to check your email inbox for any processing errors or issues notified by Apple.

The most common reasons for this can be:

- Build number was not incremented
- Missing Privacy Descriptions in your app's `Info.plist`
- Incorrect build settings or configurations
- App Store Connect account permissions are insufficient (account must have at least App Manager role)

## Bonus: Video Walkthrough

Prefer to watch? This walkthrough covers setting up an App Store Connect destination end to end:

<div style="margin-top: 2rem;">
  <iframe
    width="100%"
    height="450px"
    src="https://www.youtube-nocookie.com/embed/6DY6kY8mUb8?rel=0&modestbranding=1"
    frameborder="0"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
    referrerpolicy="strict-origin-when-cross-origin"
    allowfullscreen
  ></iframe>
</div>

## Next steps

- [Submit a build](../submit-a-build.md) — send a build to your new destination.
- [Submit for App Review](../submit-for-app-review.md) — distribute to beta groups and submit to the App Store.
- [Add release notes](../release-notes.md) — What to Test for testers and What's New for the App Store.
- [Submit automatically after a build](../submit-automatically.md) — submit every release with an automation.
- [Troubleshooting](../troubleshooting.md) — fix a failed submission.
