> For the complete documentation index, see [llms.txt](https://docs.getupdraft.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.getupdraft.com/integrations/gitlab-ci/gitlab-api-upload.md).

# GitLab app distribution for iOS builds

## Preconditions

### Setting up a Build Runner

A build runner is a physical or virtual machine that has the necessary tools to run your builds. As an iOS Dev, you probably know you need a macOS Machine with Xcode Tools to build your iOS apps. In our Office, we use Mac Minis for this.&#x20;

Once you have a machine that can handle iOS Builds, you can follow the steps in the [GitLab Documentation](https://docs.gitlab.com/runner/install/osx.html#homebrew-installation-alternative) to set up your own runner. Make sure to specify the same `tag` as you used in your `.gitlab-ci.yml` file to restrict the runner to accept only iOS Builds.&#x20;

If you've read until here, you have earned our respect! We hope our guide has been helpful to you. If you have any questions, feel free to contact our support.

## Quick Start&#x20;

* Login into Updraft Toolpage [getupdraft.com/login ](https://getupdraft.com/login)
* Go to your Profile within the Sidebar
* Copy your **API Key** as well as the **App Key** of your App&#x20;
  * Your API Key you find in your Profile. The App Key you will find on the application overview. The App key differs for each environment.
* Go to your Project Settings in Gitlab and select CI/CD

![Gitlab CI/CD Variables Settings](/files/-LtKzDBeiri4itYZJnO_)

* Expand your Variables
* **Give a name for your API Key: UPDRAFT\_API\_KEY**
* Paste your Updraft API Key in the Input Value field and click on **Save Variable**
* **Give a name for your App Key: UPDRAFT\_APP\_KEY**
* Paste your Updraft App Key in the Input Value field and click on **Save Variable**

![Updraft API Key and Updraft App Key](/files/-LtL3ZqLFCpYhiVUUWW8)

## Add a job to your `.gitlab-ci.yml`

To deploy to [Updraft](https://getupdraft.com), add a job to your `.gitlab-ci.yml` configuration.

## Example of .gitlab-cy.yml file for iOS app distribution

```
stages:
  - build_updraft

deploy:
  stage: build_updraft
  only:
  - release
  script:
  - |
    curl \
      -F whats_new="Gitlab build" \
      -F "app=@android.apk" \
      -X PUT https://getupdraft.com/api/app_upload/$UPDRAFT_APP_KEY/$UPDRAFT_API_KEY/

```

### Repository

Example how the root file repository should look like.

![](/files/-LvABi2csgIt60sMbNm0)
