> For the complete documentation index, see [llms.txt](https://docs.akinon.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.akinon.com/tutorials/app-maker/build-and-distribute/create-a-build.md).

# Create a Build

## Create a Build

A **build** turns a tagged commit of your project into a native app binary — an IPA for iOS or an APK/AAB for Android and Huawei — signed and ready to ship to the stores. This page walks through triggering a new build and following it through the pipeline.

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

### Before You Start

A build needs a few things in place first:

* **A project.** The app you want to build must already exist. See [Create Project](/tutorials/app-maker/projects/create-project.md).
* **Signing credentials** for the platform and build target you are building. Upload the iOS distribution certificate and provisioning profiles, or the Android/Huawei keystore, before your first build — see [Credentials](/tutorials/app-maker/projects/settings/credentials.md). The full certificate and profile walkthrough lives in Deploy Project.
* **A git tag** pushed to the project's managed repository. Every build is created from an existing tag; if the tag cannot be found in the repository, the build is rejected.
* **Correct configuration.** Make sure `akinon.json` (package name, bundle identifier, version, app name, icon, splash screen) is up to date before building.

### Starting a New Build

Open the project and click the **+ New Build** button in the top-right of the project header. This opens the **Build** dialog ("Create Build For").

> The button is unavailable while a project is inactive.

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

### Build Options

Fill in the create-build form:

* **Build Target** — the environment the build runs against: **Production** or **Staging**.
* **OS** — the target platform: **iOS**, **Android**, or **Huawei**.
* **Project name** — shown for reference; this field is read-only.
* **Tag** — the git tag to build from. This must match a tag that already exists in the project's repository.
* **Description** — optional notes about the build (up to 1000 characters). These appear later on the build's detail page.

Click **Create** to start the build.

> If signing or store credentials for the selected platform and target are missing or expired, App Maker stops and shows a **missing credentials** dialog with a **Go to credentials** button that takes you straight to the [Credentials](/tutorials/app-maker/projects/settings/credentials.md) page for that platform and target.

### What Happens Next

Once created, the build appears in the project's **Builds** list and moves through these statuses:

* **Pending** — queued, waiting for a build agent.
* **Deploying** — the pipeline is running.
* **Success** / **Failed** — the final outcome.

You can **cancel** a build while it is still Pending or Deploying.

> Only one active build (Pending or Deploying) is allowed per platform and build target at a time. Wait for the current build to finish — or cancel it — before starting another for the same OS and target.

The Builds list refreshes on its own while a build is in progress. Open a build to follow its timeline, stages, and logs, and to download its artifacts on the [Build Detail](/tutorials/app-maker/build-and-distribute/build-detail.md) page.

### After a Successful Build

When a build succeeds you can download its artifacts (IPA, APK/AAB, and debug symbols) from [Build Detail](/tutorials/app-maker/build-and-distribute/build-detail.md), then send it to the stores:

➡️ Distribute to Stores — TestFlight and App Store releases on iOS, Google Play tracks on Android.

Once a build's store status is successful, it also becomes eligible for over-the-air [CodePush](/tutorials/app-maker/operate-and-update/codepush.md) updates, letting you ship JavaScript-only fixes without a new store submission.

### Related Pages

* [Build Detail](/tutorials/app-maker/build-and-distribute/build-detail.md) — timeline, stages, logs, and artifact downloads.
* [Distribute to Stores](/tutorials/app-maker/build-and-distribute/distribute-to-stores.md) — release a successful build to the app stores.
* [CodePush](/tutorials/app-maker/operate-and-update/codepush.md) — ship JS-only updates over the air.
* [Deploy Project](/tutorials/app-maker/build-and-distribute/deploy-project.md) — credential prerequisites for building.
* [Credentials](/tutorials/app-maker/projects/settings/credentials.md) — manage signing and store credentials per target.


---

# 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.akinon.com/tutorials/app-maker/build-and-distribute/create-a-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.
