# Uploading Apps

## Preparing your Build

{% content-ref url="/pages/Wxt6qmFh599hLcX3LCti" %}
[Android](/platform/app-management/uploading-apps/android.md)
{% endcontent-ref %}

{% content-ref url="/pages/FZeK3GH0fupkeBe2VOZ0" %}
[iOS](/platform/app-management/uploading-apps/ios.md)
{% endcontent-ref %}

{% hint style="info" %}
We support cross-platform apps made in Flutter, Xamarin, React-Native, Kotlin Multiplatform and others which generate`.app` or `.apk` builds.

For common issues and troubleshooting, visit our [Knowledge base](https://support.appetize.io/uploading-and-installing-apps).
{% endhint %}

## Upload your App

### With Upload Page

To upload your application via a web browser use our [Upload](https://appetize.io/upload) dialog:

{% embed url="<https://appetize.io/upload>" %}

#### Update existing Apps

To update an existing app, follow the same steps as uploading a new app via the [Upload](https://appetize.io/upload) dialog. The [latest build](#user-content-fn-1)[^1] will automatically be associated with your app.

To view all builds for an app, select the app and go to the [App Builds Page](/platform/app-management/listing-apps.md#app-builds-page).

{% hint style="warning" %}
In some instances, you might want to explicitly update a particular app build. To do so, follow these steps:

1. Go to the [Apps Dashboard](https://appetize.io/apps).
2. **Select the app**.
3. **Search and select the build** you want to update.
4. Go to **Settings**.
5. Navigate to "**Update build**"

![](/files/hxY2FWAtWioY4aQ6Cyux)
{% endhint %}

### With CI/CD and Third-Party Integrations

Appetize integrates with several popular CI/CD tools and other third-party services, allowing you to:

* **Ensure Your App is Always Up-To-Date:**\
  Automatically upload the latest builds with one of our many CI/CD integrations.
* **Eliminate Manual Processes:**\
  Automate rolling out of updated apps or specific builds, saving time and effort.
* **Improve User and Development Workflows:**\
  Integrate with tools such as Storybook Native and Expo to improve user and developer experiences.
* **Run Tests on Pull Requests:**\
  Automatically upload and test builds on Pull Requests for efficient quality assurance.

Available integrations include:

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden></th><th data-hidden></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>Github Actions</td><td><a href="https://github.com/appetizeio/github-action-appetize">https://github.com/appetizeio/github-action-appetize</a></td><td></td><td></td><td><a href="/files/jszSqSvvk24Tht8V0zNu">/files/jszSqSvvk24Tht8V0zNu</a></td></tr><tr><td>Gitlab</td><td><a href="https://about.gitlab.com/blog/2020/05/06/how-to-create-review-apps-for-android-with-gitlab-fastlane-and-appetize-dot-io/">https://about.gitlab.com/blog/2020/05/06/how-to-create-review-apps-for-android-with-gitlab-fastlane-and-appetize-dot-io/</a></td><td></td><td></td><td><a href="/files/tKjE9FrQrP3fq7AvWNYh">/files/tKjE9FrQrP3fq7AvWNYh</a></td></tr><tr><td>Bitrise</td><td><a href="https://bitrise.io/integrations/steps/appetize-deploy">https://bitrise.io/integrations/steps/appetize-deploy</a></td><td></td><td></td><td><a href="/files/edT4nUuAiKFi6dlNQYAe">/files/edT4nUuAiKFi6dlNQYAe</a></td></tr><tr><td>Expo</td><td><a href="https://expo.dev/">https://expo.dev/</a></td><td></td><td></td><td><a href="/files/BLghHCSwSZizyydv4Ra3">/files/BLghHCSwSZizyydv4Ra3</a></td></tr><tr><td>Fastlane</td><td><a href="https://docs.fastlane.tools/actions/appetize/">https://docs.fastlane.tools/actions/appetize/</a></td><td></td><td></td><td><a href="/files/NOfjYyiBWbiFSG9xpoL9">/files/NOfjYyiBWbiFSG9xpoL9</a></td></tr><tr><td>Storybook native</td><td><a href="https://github.com/storybookjs/native">https://github.com/storybookjs/native</a></td><td></td><td></td><td><a href="/files/WYhovYIJ8ArRednfptUH">/files/WYhovYIJ8ArRednfptUH</a></td></tr></tbody></table>

{% hint style="info" %}
If there is a 3rd party integration that you think should be on this list, please let us [know](mailto:support@appetize.io)!
{% endhint %}

### With REST API

Appetize also supports uploading your application programmatically by making use of our [REST API](/rest-api.md):

{% content-ref url="/pages/-MJVCLk7v1u3m2wZB2kx" %}
[Create new app](/rest-api/create-new-app.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MJVCPn0365TfTav5CE1" %}
[Update existing app](/rest-api/update-existing-app.md)
{% endcontent-ref %}

[^1]: The **latest build** refers to the most recent version of your app on Android, identified by the [versionCode](https://developer.android.com/studio/publish/versioning#versioningsettings), and on iOS, by the [CFBundleShortVersionString](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring) and [CFBundleVersion](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion).


---

# Agent Instructions: 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:

```
GET https://docs.appetize.io/platform/app-management/uploading-apps.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
