> For the complete documentation index, see [llms.txt](https://docs.buildnatively.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.buildnatively.com/natively-platform/app-info/ios-build.md).

# iOS App

{% embed url="<https://app.arcade.software/share/3xBLgiVJIbZpn8Axtn8e>" %}

## Prerequisites

* Create an [Apple account](https://appleid.apple.com/account?appId=632\&returnUrl=https%3A%2F%2Fdeveloper.apple.com%2Faccount%2F)
* [Purchase an Apple Developer membership](https://developer.apple.com/programs/enroll/). Please see [this](https://developer.apple.com/programs/) link for more details on the Apple Developer program.

## App Store Credentials&#x20;

#### Generate API Key:

* Open an [App Store Connect](https://appstoreconnect.apple.com/) page and navigate to [Users and Access > Integrations](https://appstoreconnect.apple.com/access/integrations/api)

{% hint style="info" %}
In the [organization](https://developer.apple.com/programs/enroll/) type of Apple account, only **Admins** or the **Owner** can access this tab. But in [personal](https://developer.apple.com/programs/enroll/) only the **Owner**.
{% endhint %}

* If you see the **Request Access** button, click on it.
* If you didn't create any keys before, click **Generate API Key**. Otherwise, click the **Add button (+)**.
* A pop-up will appear. Enter your API Key Information:
  * **Name:** Enter a name for the key. This is a reference and is not part of the key itself.
  * **Access:** Select the access type **App Manager**.
* Click **Generate**.
* Find the row for the API Key you just generated and click **Download.** A pop-up will appear, select **Download**.

![](/files/UnmkzH7sPmBiIjGnjSml)

{% hint style="warning" %}
The .p8 file can only be downloaded once. If it's lost, you'll need to revoke the key and generate a new one.
{% endhint %}

#### **Add the API Key to Natively**

After generating the key, you'll need three values for the Natively Dashboard:

* **Issuer ID** - found at the top of the Integrations page, above the table of keys.
* **Key ID** - shown in the row of the key you just created.
* **API Key (.p8 file)** - the file you downloaded in the previous step.

In the Natively Dashboard, navigate to **Publish > iOS Build** and enter the Issuer ID, Key ID, and upload the .p8 file in the corresponding fields.

<figure><img src="/files/JXZeUsmifzIJQRnbh5h2" alt=""><figcaption></figcaption></figure>

## Bundle Identifier

{% hint style="warning" %}
The Bundle Identifier is a unique identifier for your app. Once set, it can only be changed if your app or developer account is suspended.
{% endhint %}

You have two options for setting your Bundle Identifier: let Natively [generate](#generate-bundle-id) one automatically, or [create your own](#create-your-own-bundle-id) in your Apple Developer account.

<figure><img src="/files/owlxRscqLSFfquPwwluP" alt=""><figcaption></figcaption></figure>

### Generate Bundle ID

Natively can automatically generate a Bundle Identifier for your app. This is the simplest option if you don't already have one.

### Create Your Own Bundle ID

If you'd prefer to use your own Bundle Identifier, you can create one in your Apple Developer account.&#x20;

A Bundle ID is a unique string (in reverse domain format, e.g. <mark style="color:red;">`com.yourcompany.appname`</mark>) that identifies your app within the Apple ecosystem.

{% hint style="info" %}
If it's a personal Apple account, only the owner can create a Bundle ID.
{% endhint %}

Follow these steps to create a Bundle ID, or use this [shortcut link](https://developer.apple.com/account/resources/identifiers/bundleId/add/bundle) to skip directly to the creation form:

* Open the [Apple Developer homepage](https://developer.apple.com/account), under **Program resources** > **Certificates, IDs & Profiles**, select [**Identifiers**](https://developer.apple.com/account/resources/identifiers/list).
* Click on the [**Add button (+)**](https://developer.apple.com/account/resources/identifiers/add/bundleId).
* In Register a new identifier, select **App IDs**, and click **Continue**.
* In Select a type, choose **App**, and click **Continue**.
* Enter the [App Bundle Information](https://help.apple.com/app-store-connect/#/deveaec374de):
  * **Bundle ID:** Enter a package name (i.e., <mark style="color:red;">`com.yourcompany.appname`</mark>)
  * **Description:** Provide a short description of your app (can be anything, this will not appear in the App Store).
  * **Capabilities:** skip for now.
* When everything is done, click **Continue**, then **Register.**

![](/files/n8BY1ZPrczmALWgPaHGP)

* Return to our platform and fill the **Bundle Identifier** field with Bundle ID

{% hint style="info" %}
Don't copy the **App ID Prefix** shown alongside your Bundle ID - that's a separate value and is not the same as the App Store App ID used later in this guide.
{% endhint %}

### Demo

![Create Your Own Bundle Id](/files/pR6wEBPgSzbaP4UzBq2f)

## App Store App ID

[App Store Connect](https://help.apple.com/app-store-connect/#/dev2cd126805) is used to submit apps to the App Store, manage apps, and more.

* Navigate to [App Store Connect](https://appstoreconnect.apple.com/) and then select [My Apps](https://appstoreconnect.apple.com/apps).
* Click on the **Add button (+)** and then select **New App.**
* A pop-up will appear. Enter your app information:
  * **Platform:** for mobile apps, it's **iOS**.
  * **Name:** Enter a Name for your app (this is the name that will show in the App Store).
  * **Primary Language** for your app.
  * **Bundle ID:** Select the **Bundle ID** you created in the [previous step](#bundle-identifier).
  * **SKU**: Enter a unique identifier. You can also add your **Bundle ID** here, as long as it is unique.
  * User Access: **Set the user access.** If you select Limited Access, you will need to select the users you would like to be able to access this app. This will only appear if you have other users included in your App Store Connect account.
* When you are done, select **Create.**

![](/files/EiWZ2M6rqpWWYFXPvEfm)

{% hint style="info" %}
It can take a few minutes for your app to be created. If it doesn't appear right away, reload the page.
{% endhint %}

* Select **App Information** (under **General** in the left sidebar).
* Scroll down to **General Information** and find the field labeled **Apple ID**. This is a numeric identifier for your app - not to be confused with your personal Apple ID account.
* Select the **Apple ID** and copy it.

![](/files/Nadpi2T5jXliboTw3ZHp)

* Return to the Natively Dashboard and enter this value in the **App Store App ID** field.

### Demo

![Create App in App Store Connect](/files/SzeSETNdRcUiR0PprEa8)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.buildnatively.com/natively-platform/app-info/ios-build.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
